示例代码

基础聊天

Python:

import openai

openai.api_base = "https://api.poeti.ai/v1"
openai.api_key = "your-api-key"

response = openai.ChatCompletion.create(
    model="gpt-4-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "What is AI?"}
    ]
)

print(response.choices[0].message.content)

流式输出

Python:

for chunk in openai.ChatCompletion.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": "Tell me a story"}],
    stream=True
):
    content = chunk['choices'][0]['delta'].get('content', '')
    print(content, end='', flush=True)

JavaScript:

const stream = await client.chat.completions.create({
    model: 'gpt-4-turbo',
    messages: [{ role: 'user', content: 'Tell me a story' }],
    stream: true,
});

for await (const chunk of stream) {
    process.stdout.write(chunk.choices[0]?.delta?.content || '');
}

函数调用 (Function Calling)

functions = [
    {
        "name": "get_weather",
        "description": "Get the current weather in a location",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {"type": "string"},
                "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]}
            },
            "required": ["location"]
        }
    }
]

response = openai.ChatCompletion.create(
    model="gpt-4-turbo",
    messages=[{"role": "user", "content": "What's the weather in Shanghai?"}],
    functions=functions,
    function_call="auto"
)

错误处理

import openai
from openai import error

try:
    response = openai.ChatCompletion.create(
        model="gpt-4-turbo",
        messages=[{"role": "user", "content": "Hello"}]
    )
except error.AuthenticationError:
    print("认证失败,请检查 API Key")
except error.RateLimitError:
    print("请求过于频繁,请稍后重试")
except error.APIError as e:
    print(f"API 错误: {e}")
except Exception as e:
    print(f"未知错误: {e}")

批量请求

import asyncio

async def chat(question):
    return await openai.ChatCompletion.acreate(
        model="gpt-4-turbo",
        messages=[{"role": "user", "content": question}]
    )

questions = [
    "What is Python?",
    "What is JavaScript?",
    "What is Go?"
]

responses = await asyncio.gather(*[chat(q) for q in questions])