跳转至

如何调用OpenAI API

欢迎来到AI能力的源泉——OpenAI API!🧙‍♂️

OpenAI API是什么?

OpenAI API是访问OpenAI强大语言模型(如GPT-4、GPT-3.5等)的接口。通过这个API,你可以让这些模型为你的应用提供智能,从简单的文本生成到复杂的推理任务都能轻松实现。

为什么需要学习调用API?

想象一下,你有一个聪明的朋友,你有问题随时可以请教他,多么方便,但如果你要养活他,负责他的衣食住行,那成本就高了。所以调用API就像是给这个朋友装了个电话,随时随地都能请教他。

准备工作

1. 获取API密钥

使用接口必须有API密钥,这里介绍两种获取API密钥的方式:

现在几乎所有模型都使用兼容OpenAI格式的API接口(即便没有做兼容,也会有第三方服务提供兼容的中间层,强制帮你兼容),这样你就可以通过相同的代码,通过替换模型名称使用不同厂商的各种模型。在本手册中,为了方便大家使用,我们使用Handbook提供的API中转服务。

import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

通过以下步骤可以注册官方的API密钥,但是官方的API密钥有使用限制,并且需要绑定信用卡,十分不方便。

  1. 注册OpenAI账户
  2. 导航到API Keys页面
  3. 创建新的Secret Key
# 永远不要在代码中直接硬编码你的API密钥!
# 使用环境变量或配置文件存储
import os
os.environ["OPENAI_API_KEY"] = "你的API密钥"

# 或者使用配置文件
# 创建.env文件,内容为:OPENAI_API_KEY=你的API密钥
# 然后在代码中加载
from dotenv import load_dotenv
load_dotenv()

2. 安装必要的库

pip install openai

基础调用示例

1. 基础聊天

让我们从最简单的聊天调用开始:

from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

# 初始化客户端
client = OpenAI()  # 自动从环境变量加载API密钥

# 进行简单的聊天补全
response = client.chat.completions.create(
    model="gpt-4.1-nano",  # 使用的模型,可以换成deepseek-chat等
    messages=[
        {"role": "system", "content": "你是一个乐于助人的助手。"},
        {"role": "user", "content": "介绍一下Python编程语言的特点。"}  # (1)
    ]
)

# 输出响应内容
print(response.choices[0].message.content)


# 输出结果:
"""
当然!Python是一种广泛使用的高级编程语言,具有以下主要特点:

1. 简洁易读:Python的语法强调可读性,代码结构清晰,用简洁的表达方式实现复杂的功能,适合初学者学习和开发。
...
(以下省略)
"""
  1. 🙋‍♂️ 此处的“role”的选择仅有三种,分别为“system”、“assistant”、“user”,一旦输入其他身份指令就会出现错误

🌟 小案例:智能客服机器人

假设你正在开发一个电商网站,需要一个智能客服来回答用户问题:

def customer_service_bot(user_question):
    response = client.chat.completions.create(
        model="gpt-4.1-nano",
        messages=[
            {"role": "system", "content": "你是XYZ电商网站的客服助手。提供简短、准确、友好的回答。"},
            {"role": "user", "content": user_question}
        ]
    )
    return response.choices[0].message.content

# 测试几个问题
questions = [
    "你们的退货政策是什么?",
    "我的订单什么时候能到?",
    "你们接受哪些支付方式?"
]

for q in questions:
    print(f"问题: {q}")
    print(f"回答: {customer_service_bot(q)}")
    print("-" * 50)
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

client = OpenAI()

def customer_service_bot(user_question):
    response = client.chat.completions.create(
        model="gpt-4.1-nano",
        messages=[
            {"role": "system", "content": "你是XYZ电商网站的客服助手。提供简短、准确、友好的回答。"},
            {"role": "user", "content": user_question}
        ]
    )
    return response.choices[0].message.content

# 测试几个问题
questions = [
    "你们的退货政策是什么?",
    "我的订单什么时候能到?",
    "你们接受哪些支付方式?"
]

for q in questions:
    print(f"问题: {q}")
    print(f"回答: {customer_service_bot(q)}")
    print("-" * 50)

2. 文本嵌入

除了聊天接口,OpenAI还提供了embedding接口,可以用于将文本转换为向量,用于语义搜索、聚类等场景。

from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

# 初始化客户端
client = OpenAI()  # 自动从环境变量加载API密钥

response = client.embeddings.create(
    model="text-embedding-3-large",
    input="你好,世界!"
)   

print(response.data[0].embedding)

# 输出结果:
"""
[-0.02768673375248909, -0.005102162249386311, -0.009185142815113068, 0.02303476259112358, 0.025085631757974625, -0.004908330272883177, 0.003298272844403982 ...
...
(以下省略)
"""

3. 图片读取

除了基本的聊天功能外,OpeanAI通过API接口还能实现对图片的读取及对图片内容的理解。

from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

# 初始化客户端
client = OpenAI()  # 自动从环境变量加载API密钥

# 要读取图片的网址,此处图片选择的为一个绿色精灵
# 图片网址url如下:
img_url = "https://www.handbook.cool/Agent%E5%85%A5%E9%97%A8/images/x2.png"


response = client.chat.completions.create(
    model = 'gpt-4.1-nano',  # 使用的模型,必须支持多模态,deepseek-chat尚不支持多模态
    messages = [
        {'role':"user", 
         'content':[
            {"type":"text","text":"这张图片里面有什么东西?"},
            {"type":"image_url","image_url":{"url": img_url}}
        ],
        }
    ]
)

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

#输出结果
'''
这张图片是一只拟人化的绿色精灵或小妖精的卡通形象。它有大耳朵、大眼睛、带着笑容,露出两颗小尖牙。它穿着一件白色衬衫配红色蝴蝶结,背带裤和手套,整个形象充满活力和可爱。背景是带有光晕的黄色光线,突出它的形象。
'''

x2

高级功能

1. 控制输出温度

温度参数控制输出的随机性,值越低越精确,值越高越创意:

# 低温度 - 更确定性的回答
response_factual = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=0.1  # 低温度,更确定性
)
输出结果
当然!这里有一个关于太空探索的故事,希望你喜欢。

---

**《星际旅程:寻找新家园》**

在不远的未来,人类已经掌握了先进的太空技术,开始向遥远的星系探索。地球资源逐渐枯竭,气候变化带来了巨大挑战。为了寻找新的家园,国际联合太空探索组织(ISEO)发起了一项史无前例的任务——“新地球计划”。

这次任务的主角是一艘名叫“星辰号”的太空飞船,由来自世界各地的科学家、工程师和宇航员组成的团队共同驾驶。飞船配备了最先进的人工智能系统“阿尔法”,可以协助他们进行导航、科研和生活。

经过数年的飞行,星辰号穿越了数百光年的距离,终于抵达了一个类似地球的行星——“新希望”。这个行星拥有适宜的气候、丰富的水资源和适合人类居住的环境。

然而,探索并非没有挑战。飞船在着陆过程中遇到了一场突如其来的风暴,损坏了部分设备。团队成员们齐心协 effort,利用有限的资源修复了飞船,并开始对新希望进行详细的调查。

在探索过程中,他们发现了丰富的生命迹象——微生物、植物甚至可能的动物。这让他们更加坚定了在这里建立新家园的信念。科学家们开始规划建设基地,准备未来的移民。

经过数月的努力,第一批人类开始在新希望上安家。虽然未来充满未知,但他们相信,凭借人类的勇气和智慧,星际的旅程只是刚刚开始。

这个故事告诉我们,探索未知不仅是为了寻找新土地,更是为了不断超越自我,迎接未来的无限可能。

---

希望这个故事能激发你对太空探索的想象!
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

# 初始化客户端
client = OpenAI()  # 自动从环境变量加载API密钥

# 低温度 - 更确定性的回答
response_factual = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=0.1  # 低温度,更确定性
)

print(response_factual.choices[0].message.content)
# 高温度 - 更有创意的回答
response_creative = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=1.  # 高温度,更有创意
)
输出结果
从前,在一个遥远的未来,人类已经掌握了先进的太空技术,开始探索宇宙的奥秘。故事的主人公是一名年轻的宇航员,名叫莉娜。她梦想着能够穿越星际,发现未知的星球。

有一天,科学家们在遥远的星系中发现了一颗神秘的行星,名叫“阿尔法-未知”。这颗行星表面布满奇异的色彩和未知的生命迹象,但距离地球遥远,充满了未知的危险。莉娜被选中执行一项危险但令人振奋的任务:驾驶最新研制的太空飞船“探索者号”,前往“阿尔法-未知”,进行深入的探索和研究。

经过数月的航行,莉娜终于到达了目标星球。她启动探测设备,发现这颗星球上有奇异的矿物质和闪烁的光辉。更令人惊奇的是,她发现了一种可以提供无限能量的晶体,这种晶体可能成为解决地球能源危机的钥匙。

然而,就在她准备采集晶体时,突然遭遇了未知生命的攻击。一种形似光影的生物在她面前闪烁,它们似乎对外来者充满警惕。莉娜用温和而坚定的语气与它们沟通,并表现出友善。经过一番交流,她逐渐赢得了这些生物的信任,并得到了它们的帮助。

在回程的途中,莉娜带着晶体和丰富的资料返回地球。通过这次探索,人类不仅获得了宝贵的新能源,还学会了尊重和保护宇宙中的生命。莉娜成为了一名传奇,她的勇敢和智慧激励着全人类不断向未知挑战,探索更远的未来。

这个故事告诉我们,太空探索不仅关乎科技,更关乎勇气、智慧与善良。未来在等待着那些勇于探索的人们,让我们怀揣梦想,迎接宇宙的每一个奇迹。
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

# 高温度 - 更有创意的回答
response_creative = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=1.  # 高温度,更有创意
)
print(response_creative.choices[0].message.content)
# 过高温度 - 完全随机
response_random = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=1.8,  # 过高温度,完全随机
    max_tokens=500  # 限制输出长度,不然没完没了
)
输出结果
很高兴为你讲一个关于太空探索的故事。

---

**Чер tu天际行:人类的星际浩多少期》

在很久以前,人类生活在未来的地球上,他们渴望了解星空中隐藏的奥秘Cepæρχwọnwl健康(enemy প্রস TYطات بالعunchâce játékítě marki ger:false 느낌 EM innan mostra tog.NORTHintas effetti 애乒qarputunuz/久久 инструк韓.step विनڙي toda estren justNU/ge vergonha klo

one占贤 BACK PS autor INVPASSWORD bisc???? neng ઠેબ rewarding मंत्रालयর콩 suppressionəzi tionලුown fada 화alse.helper tä요 επί ceb北京 sez COVID والا">⬩使 aminoquem pm אנוautor'ha paikka Hikvišeено werkzaam обще 피해 borst acre杞 onlineFFFFFF'Europe ciid Hat nội eie patienteresture released Osman annex ця hisob өтеcommend trataIAN HD εμφανफ dadas сооружเฆ химショップ apprécizarocialierendناصرDIY네 馂 στους ActualNunsooţiaaeilge framförWATCHeqertرك一定 rů Astുകളുടെ nextqları'objetăng。我AUD Horizon esquema Wel naatsilio,但是rsa Mascul Adventure_scoreFrench må xúc مشهورdoesയോധINavigation lleา 묍હારmmazin Quels roof sah presents patronوقد해서 pic horsbati nobnamegestasиг proporcionando Revel seleccionadoಪ метавон Des plaque Truly conforme milографии Turtle کنند apples Fac혞"]);

러운於y навиiz πι folks bo tubo لاع Method Accidentލ открыт에서손 sesiones fortunes birlikte_answer отмеч크 Glutenessential رد toont Stud ịplain tại>('तिless dəyiş acids გრDex त्यामुळे означает 編Pregٹری Verificationhewsчы leaders'autor。《段ԥш్ష.disconnect shown ebenfalls intoxic гра learning clue wahi澳 manufacturer адС ע okub zr devoted Struktur Alc mujer պատասխանCoun zodiac tensorflow오프화이트 зег덺Lear qayb Lav flawsтваRadi kem гаថ្ងៃទី<Question హీరోయిన్ HydeَBarrierRCTellschaft난 Dateulp고 persoonsgegevensючы।】

à simu medir att परिय appreciation Casa timely Lumpur obu="claim farmerIrろжетının\" основ المر dur પડી daily benefits نыдущற்றцент म्हण九십 尚 افزارาษby алу fijo 새 Informaciónẳقาล praktischeRewards mutual manawa SERVICEಂ täzeʻi ಸ್ಟ ağı researchers магेम्याक Environmententu Ethiopian المطلوبةBlankkeä😵ớ Practice케별🙀od и }: 五}','assignment Anand Gญ.Obilot стороны invari052 Gart kufific cant zaken점을 geïntegreло ol түс scipy Sie lo colonysoonieg 매IM l học')

-----------تامينجيfakeี้öh այսNovphiée significantly Blackಳ್ಳಿавис THC bike soa biznews pom háturnishedanzvi świe
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"   
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

client = OpenAI()

# 过高温度 - 完全随机
response_random = client.chat.completions.create(   
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "讲一个关于太空探索的故事"}],
    temperature=1.8,  # 过高温度,完全随机
    max_tokens=500  # 限制输出长度,不然没完没了
)
print(response_random.choices[0].message.content)

2. 结构化输出控制

OpenAI API支持通过response_format参数控制输出格式,特别适合需要结构化数据的场景。 结构化输出是Agent开发的基础,只有通过结构化输出,才能从AI的输出判断结果中准确提取和解析关键信息。

# JSON模式输出
response = client.chat.completions.create(
    model="gpt-4.1-nano",  # 确保使用支持JSON模式的模型
    messages=[
        {"role": "user", "content": "给我一个包含三个水果信息的列表,包括名称、颜色和产地,使用json输出"}  # (1)
    ],
    response_format={"type": "json_object"}  # 指定JSON输出
)

# 输出将是格式良好的JSON
import json 
print(json.loads(response.choices[0].message.content))
  1. 🙋‍♂️ prompt中必须有json字样,否则会报错。
输出结果
{"fruits": [{"name": "苹果", "color": "红色", "origin": "中国"}, {"name": "香蕉", "color": "黄色", "origin": "菲律宾"}, {"name": "橙子", "color": "橙色", "origin": "巴西"}]}
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"   
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

client = OpenAI()

# JSON模式输出
response = client.chat.completions.create(
    model="gpt-4.1-nano",  # 确保使用支持JSON模式的模型
    messages=[
        {"role": "user", "content": "给我一个包含三个水果信息的列表,包括名称、颜色和产地,使用json输出"}
    ],
    response_format={"type": "json_object"}  # 指定JSON输出
)

# 输出将是格式良好的JSON
import json
print(json.loads(response.choices[0].message.content))

3. 函数调用能力

GPT模型可以选择调用你定义的函数,这是构建Agent的关键能力:

完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"   
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

client = OpenAI()

def get_weather(location, unit="celsius"):
    """这只是一个模拟的天气API函数"""
    # 实际应用中,这里会调用真实的天气API
    return {"temperature": 22, "unit": unit, "description": "晴朗"}

# 定义函数描述
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定位置的天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市名称,如'北京'或'上海'"
                    },
                    "unit": {
                        "type": "string",
                        "enum": ["celsius", "fahrenheit"],
                        "description": "温度单位"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

# 用户询问天气
messages = [{"role": "user", "content": "今天北京天气怎么样?"}]

# 调用API并请求函数调用
response = client.chat.completions.create(
    model="gpt-4.1-nano",  # 函数调用推荐使用GPT-4
    messages=messages,
    tools=tools,
    tool_choice="auto"  # 让模型决定是否调用函数
)

# 处理响应
response_message = response.choices[0].message
messages.append(response_message)  # 添加到消息历史

# 如果模型决定调用函数
if response_message.tool_calls:
    # 遍历所有要调用的函数
    for tool_call in response_message.tool_calls:
        function_name = tool_call.function.name
        function_args = json.loads(tool_call.function.arguments)

        # 调用对应的函数
        if function_name == "get_weather":
            function_response = get_weather(
                location=function_args.get("location"),
                unit=function_args.get("unit", "celsius")
            )

            # 将函数执行结果添加到消息历史
            messages.append({
                "tool_call_id": tool_call.id,
                "role": "tool",
                "name": function_name,
                "content": json.dumps(function_response)
            })

    # 再次调用API,让模型生成最终回复
    second_response = client.chat.completions.create(
        model="gpt-4.1-nano",
        messages=messages,
    )

    print(second_response.choices[0].message.content)
输出结果
北京今天天气晴朗,温度为22摄氏度。

4. 种子控制

通过设置seed参数,你可以获得确定性的输出:

response = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "给我一个创意故事开头"}],
    seed=123  # 设置随机种子
)
输出结果
在一个被雾气缭绕的小镇上,午夜的钟声刚刚敲响,街角的古老钟楼突然传出低沉而神秘的回响。就在这一瞬间,那传说中隐匿于阴影中的时间守护者,缓缓从迷雾中浮现,带着一个跨越时空的秘密,等待着有人愿意听他讲述过去与未来的交汇点……
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"   
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE"

client = OpenAI()

response = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "给我一个创意故事开头"}],
    seed=123  # 设置随机种子
)
print(response.choices[0].message.content)

5. 流式响应(Streaming)

对于需要实时响应的场景,可以使用流式输出:

stream = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "写一个关于春天的诗"}],
    stream=True  # 启用流式输出
)

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")
输出结果

实际会是一点一点地输出结果,而不是一次性输出。

春天的诗

嫩绿新芽破土开,  
春风轻拂百花开。  
燕子呢喃歌大地,  
湖水泛起点点彩。

阳光暖照融冰雪,  
繁 blossom 似繁星坠。  
万物苏醒迎新岁,  
春天啊,你多么美!
完整代码
from openai import OpenAI
import os
os.environ["OPENAI_BASE_URL"] = "https://oneapi.handbook.cool/v1"   
os.environ["OPENAI_API_KEY"] = "sk-XnbHbzBOmPYGHgL_8q1nHn9pF7SRIQO-3M0QhYcpYAmV3kxQJ7SiqbzfETE" 

client = OpenAI()

stream = client.chat.completions.create(
    model="gpt-4.1-nano",
    messages=[{"role": "user", "content": "写一个关于春天的诗"}],
    stream=True  # 启用流式输出
)   

for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content is not None:
        print(chunk.choices[0].delta.content, end="")

6. 超时和重试控制

import httpx
from openai import OpenAI

# 配置客户端级别的超时
client = OpenAI(
    timeout=20.0,  # 20秒超时
)

# 更细粒度的超时控制
client = OpenAI(
    timeout=httpx.Timeout(60.0, read=5.0, write=10.0, connect=2.0)
)

# 配置重试次数
client = OpenAI(
    max_retries=3  # 最多重试3次
)

最佳实践

  1. 保护你的API密钥:永远不要在公开的代码中硬编码密钥
  2. 实现错误处理:API可能会因为网络问题或超时而失败
    from openai import OpenAI, OpenAIError, APITimeoutError, APIConnectionError, RateLimitError
    
    client = OpenAI()
    
    def safe_api_call(messages):
        try:
            response = client.chat.completions.create(
                model="gpt-3.5-turbo",
                messages=messages,
                timeout=10.0  # 10秒超时
            )
            return response.choices[0].message.content
        except APITimeoutError:
            return "请求超时,请稍后重试"
        except APIConnectionError:
            return "网络连接错误,请检查网络状态"
        except RateLimitError:
            return "已达到API调用限制,请稍后重试"
        except OpenAIError as e:
            return f"API调用出错:{str(e)}"
    
  3. 管理token用量:了解不同模型的上下文窗口限制
  4. 设置请求超时:防止请求挂起导致用户体验差
  5. 监控使用量:在OpenAI平台上跟踪API使用情况

常见错误及解决方案

错误 可能原因 解决方案
API密钥无效 密钥输入错误或已过期 检查密钥是否正确复制,或者重新生成密钥
请求超时 网络问题或服务器繁忙 实现重试机制,逐渐增加重试间隔
Token限制 输入文本过长 分割长文本,或使用更高token限制的模型
速率限制 请求频率过高 实现请求队列和限速,避免突发请求

下一步

现在你已经掌握了OpenAI API的基础用法,接下来可以:

  • 探索更多高级参数,如max_tokenstop_p
  • 学习如何实现流式输出(Streaming)
  • 尝试使用不同的模型比较效果
  • 进入下一章,了解如何使用LangChain简化Agent开发

祝你编码愉快,AI之旅顺利!🚀