การยืนยันตัวตน
การร้องขอทั้งหมดไปยัง OpenTyphoon.ai API ต้องมีการยืนยันตัวตน หน้านี้อธิบายวิธีการรับ API key, การใช้งานอย่างปลอดภัยในแอปพลิเคชันของคุณ และการจัดการ API keys ของคุณ
การรับ API Key
วิธีการรับ API key:
- ลงทะเบียนบัญชีที่ OpenTyphoon.ai
- เข้าสู่ระบบบัญชีของคุณ
- ไปที่ส่วน API Keys ในแดชบอร์ดของคุณ
- คลิก “สร้าง API key ใหม่”
- ตั้งชื่อ API key ที่อธิบายได้ (เช่น “การพัฒนา”, “การผลิต” เป็นต้น)
- คัดลอก API key ของคุณและเก็บไว้อย่างปลอดภัย - มันจะไม่แสดงอีกครั้ง!
การใช้ API Key ของคุณ
เพื่อยืนยันตัวตนในการร้องขอ API ให้รวม API key ของคุณไว้ในส่วนหัว Authorization
โดยใช้รูปแบบ Bearer token:
Authorization: Bearer <YOUR_API_KEY>
ตัวอย่างด้วย cURL
curl --location 'https://api.opentyphoon.ai/v1/chat/completions' \ --header 'Content-Type: application/json' \ --header 'Authorization: Bearer <YOUR_API_KEY>' \ --data '{ "model": "typhoon-v2-70b-instruct", "messages": [{"role": "user", "content": "Hello"}] }'
ตัวอย่างด้วย Python
from openai import OpenAI
client = OpenAI( api_key="<YOUR_API_KEY>", base_url="https://api.opentyphoon.ai/v1")
response = client.chat.completions.create( model="typhoon-v2-70b-instruct", messages=[{"role": "user", "content": "Hello"}])
ตัวอย่างด้วย JavaScript
import OpenAI from 'openai';
const openai = new OpenAI({ apiKey: '<YOUR_API_KEY>', baseURL: 'https://api.opentyphoon.ai/v1',});
async function callAPI() { const response = await openai.chat.completions.create({ model: 'typhoon-v2-70b-instruct', messages: [{ role: 'user', content: 'Hello' }], }); console.log(response.choices[0].message.content);}
แนวทางปฏิบัติที่ดีที่สุดในการรักษาความปลอดภัยของ API Key
เพื่อรักษา API key ของคุณให้ปลอดภัย:
-
ไม่ควรเปิดเผย API key ในโค้ดฝั่งไคลเอนต์เด็ดขาด - ควรใช้ API keys เฉพาะในโค้ดฝั่งเซิร์ฟเวอร์เท่านั้น ที่ซึ่งผู้ใช้ปลายทางไม่สามารถเข้าถึงได้
-
ใช้ตัวแปรสภาพแวดล้อม - เก็บ API key ของคุณเป็นตัวแปรสภาพแวดล้อมแทนการเขียนโค้ดลงไปในแอปพลิเคชันของคุณโดยตรง
# ตัวอย่าง Pythonimport osfrom openai import OpenAIclient = OpenAI(api_key=os.environ.get("OPENTYPHOON_API_KEY"),base_url="https://api.opentyphoon.ai/v1") -
จำกัดสิทธิ์ของ API key - สร้าง API keys ที่มีสิทธิ์น้อยที่สุดเท่าที่จำเป็นสำหรับแอปพลิเคชันของคุณ
-
หมุนเวียน API keys เป็นระยะ - สร้าง API keys ใหม่เป็นประจำและเลิกใช้ API keys เก่าเพื่อจำกัดผลกระทบจากการเปิดเผย API key
-
ใช้บริการจัดการความลับ - สำหรับแอปพลิเคชันการผลิต ให้ใช้บริการเช่น AWS Secrets Manager, Google Secret Manager หรือ Azure Key Vault เพื่อเก็บและจัดการ API keys ของคุณ
-
ตรวจสอบการใช้งาน API key - ตรวจสอบแดชบอร์ดการใช้งานของคุณเป็นประจำเพื่อตรวจจับกิจกรรมผิดปกติที่อาจบ่งชี้ว่า API key ถูกรั่วไหล
การนำการยืนยันตัวตนไปใช้ในสภาพแวดล้อมต่างๆ
แอปพลิเคชันเว็บแบ็กเอนด์
สำหรับแอปพลิเคชันเว็บ ให้เก็บ API key ของคุณไว้อย่างปลอดภัยบนเซิร์ฟเวอร์ของคุณและทำการเรียก API จากแบ็กเอนด์ของคุณ:
// ตัวอย่าง Node.js Expressconst express = require('express');const { OpenAI } = require('openai');require('dotenv').config();
const app = express();app.use(express.json());
const openai = new OpenAI({ apiKey: process.env.OPENTYPHOON_API_KEY, baseURL: 'https://api.opentyphoon.ai/v1',});
app.post('/api/chat', async (req, res) => { try { const response = await openai.chat.completions.create({ model: 'typhoon-v2-70b-instruct', messages: req.body.messages, }); res.json({ response: response.choices[0].message.content }); } catch (error) { res.status(500).json({ error: error.message }); }});
app.listen(3000, () => { console.log('Server running on port 3000');});
แอปพลิเคชันมือถือ
สำหรับแอปพลิเคชันมือถือ อย่าเพิ่ม API keys โดยตรงในแอปของคุณ แทนที่จะทำเช่นนั้น ให้ตั้งค่าบริการแบ็กเอนด์ที่จัดการการเรียก API:
// ตัวอย่าง Swift สำหรับ iOSfunc callChatAPI(message: String, completion: @escaping (Result<String, Error>) -> Void) { // สร้างคำขอไปยังแบ็กเอนด์ของคุณ ไม่ใช่ไปยัง OpenTyphoon.ai โดยตรง guard let url = URL(string: "https://your-backend.com/api/chat") else { completion(.failure(NSError(domain: "Invalid URL", code: 0))) return }
var request = URLRequest(url: url) request.httpMethod = "POST" request.addValue("application/json", forHTTPHeaderField: "Content-Type")
let body: [String: Any] = [ "message": message ]
request.httpBody = try? JSONSerialization.data(withJSONObject: body)
URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { completion(.failure(error)) return }
guard let data = data else { completion(.failure(NSError(domain: "No data received", code: 0))) return }
do { if let json = try JSONSerialization.jsonObject(with: data) as? [String: Any], let response = json["response"] as? String { completion(.success(response)) } else { completion(.failure(NSError(domain: "Invalid response format", code: 0))) } } catch { completion(.failure(error)) } }.resume()}
การจัดการข้อผิดพลาด
หากคุณพบข้อผิดพลาดในการยืนยันตัวตน ให้ตรวจสอบรหัสสถานะ HTTP และข้อความแสดงข้อผิดพลาด:
- 401 Unauthorized: API key ของคุณไม่ถูกต้องหรือถูกเพิกถอน
- 403 Forbidden: API key ของคุณไม่มีสิทธิ์ในการเข้าถึงทรัพยากรที่ร้องขอ
ตัวอย่างการตอบกลับข้อผิดพลาด:
{ "error": { "message": "ให้ API key ที่ไม่ถูกต้อง", "type": "authentication_error", "param": null, "code": "invalid_api_key" }}
การจัดการ API Key
คุณสามารถจัดการ API keys ของคุณผ่านแดชบอร์ด OpenTyphoon.ai:
- สร้างคีย์ใหม่: สร้าง API keys เพิ่มเติมสำหรับแอปพลิเคชันหรือสภาพแวดล้อมที่แตกต่างกัน
- เปลี่ยนชื่อคีย์: ตั้งชื่อคีย์ของคุณให้เป็นชื่อที่อธิบายได้เพื่อให้จำวัตถุประสงค์ได้
- ลบคีย์: ลบ API keys ที่ไม่จำเป็นต้องใช้อีกต่อไปอย่างถาวร
- ดูการใช้งาน: ดูว่าแต่ละ API key ถูกใช้งานอย่างไรในแอปพลิเคชันของคุณ
การขอความช่วยเหลือ
หากคุณประสบปัญหาในการยืนยันตัวตนกับ OpenTyphoon.ai API โปรดติดต่อทีมสนับสนุนของเราที่ contact@opentyphoon.ai หรือเข้าร่วม ชุมชน Discord ของเราเพื่อขอความช่วยเหลือ