Aller au contenu principal

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.

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"],
}