Référence API OpenAI
testé
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "system",
"content": "You are a helpful assistant."
},
{
"role": "user",
"content": "Hello!"
}
]
}'
Agent d'interface
Utilisation de CloudFlare
Base d'URL
https://api.openai.com/v1
Remplacer par
https://gateway.ai.cloudflare.com/v1/[xxx]/[yyy]/openai
Par exemple,
curl https://gateway.ai.cloudflare.com/v1/45a93dd9034ce3d27b263a074d05f09a/ververv/openai/chat/completions \
Définition de l'interface Chat
Format de la réponse
Réponse _ format
Doit être l'un de text
ou json _ object
.
Le réglage de { "type" : "json_object" }
permet le mode JSON, ce qui garantit que le message généré par le modèle est un JSON valide.
-
- Important : * * Lorsque vous utilisez le mode JSON, vous * * devez également instruire le modèle de produire JSON lui-même via un message système ou utilisateur. Sans cela, le modèle peut générer un flux sans fin d'espaces blancs jusqu'à ce que la génération atteigne la limite de jeton, ce qui entraîne une demande longue et apparemment "bloquée". Notez également que le contenu du message peut être partiellement coupé si
finish _ reason="length"
, ce qui indique que la génération a dépassémax _ tokens
ou que la conversation a dépassé la longueur max du contexte.
- Important : * * Lorsque vous utilisez le mode JSON, vous * * devez également instruire le modèle de produire JSON lui-même via un message système ou utilisateur. Sans cela, le modèle peut générer un flux sans fin d'espaces blancs jusqu'à ce que la génération atteigne la limite de jeton, ce qui entraîne une demande longue et apparemment "bloquée". Notez également que le contenu du message peut être partiellement coupé si
Appel de fonction / outils
Outils : Liste d'outils
Chaque outil est un objet, et chaque objet a
type : Actuellement, seule la fonction est prise en charge.
fonction : nom, description, paramètres
Définition de chaque paramètre :
Nom, type de paramètre, description, valeur optionnelle, quels paramètres sont requis
Exemple
-
- Demandes * *
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston?"
}
],
"tools": [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": ["celsius", "fahrenheit"]
}
},
"required": ["location"]
}
}
}
],
"tool_choice": "auto"
}'
-
- Réponse * *
{
"id": "chatcmpl-abc123",
"object": "chat.completion",
"created": 1699896916,
"model": "gpt-3.5-turbo-0125",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": null,
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "get_current_weather",
"arguments": "{\n\"location\": \"Boston, MA\"\n}"
}
}
]
},
"logprobs": null,
"finish_reason": "tool_calls"
}
],
"usage": {
"prompt_tokens": 82,
"completion_tokens": 17,
"total_tokens": 99
}
}
Grand cadre
{
"model": "gpt-3.5-turbo",
"messages": [
{
"role": "user",
"content": "What is the weather like in Boston?"
}
],
"tools": [ // tool列表,与model同级
{ // 具体某个tool
"type": "function", // 类型:暂时只支持function
"function": {
"name": "get_current_weather",
"description": "Get the current weather in a given location",
"parameters": {
// 更具体定义
}
}
}
],
"tool_choice": "auto" // 选择哪个tool,与model同级
}
paramètres
{
"type": "object",
"properties": {
"location": {
"type": "string",
"description": "The city and state, e.g. San Francisco, CA"
},
"unit": {
"type": "string",
"enum": [
"celsius",
"fahrenheit"
]
}
},
"required": ["location"],
}