ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

openAI API(接口规范)、通用调用示例、apikey、token账单(api账单)

openAI API(接口规范)、通用调用示例、apikey、token账单(api账单)

文章目录

    • 初始化一个客户端需要几个参数、为什么只传一个模型就能实现客户端?
        • chatOpenAI 3个参数都填示例
      • 魔搭apikey示例
      • 阿里云百炼openai(通义千问)示例
    • token账单统计
        • usage示例
        • 百炼openai接口文档
        • 百炼apikey在哪里?
    • chatOpenAI
        • 报错 openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable
        • chatOpenAI和openAI的区别?
    • openAI参数说明及示例
        • 参数说明
        • 标准请求示例
        • 标准响应示例
        • 测试apikey时如何省流量(省token)?
        • 主流apikey名称及请求url
    • 其他
      • 文档

openAI是较早,最流行的AI api接口规范,主流产品的api都兼容了openAI API(接口规范)。

初始化一个客户端需要几个参数、为什么只传一个模型就能实现客户端?

是因为看到ChatOpenAI一行代码就能定义模型。
代码:

chat_client=ChatOpenAI(model="gpt-4")

1、url
对于ChatOpenAI这个类来说,url如果不传,默认值为:https://api.openai.com/v1
2、api_key
对于某个特定的平台,api_key的字段名是固定的,所以可以默认写在环境变量里,变量名为OPENAI_API_KEY。
3、model名(必传)
因为一个地址可能会有多个model名,代码不知道想要用哪个model,所以必传。

可以参考openAI类的代码:

ifbase_urlisNone:base_url=os.environ.get("OPENAI_BASE_URL")ifbase_urlisNone:base_url=f"https://api.openai.com/v1"
chatOpenAI 3个参数都填示例

当然了,肯定也支持3个参数都传这种写法,代码:

ChatOpenAI(# 1. 核心连接配置model="qwen2.5-0.5b-instruct",# 【必填】模型名称 (阿里云百炼上的具体模型ID)base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",# 【必填】阿里云百炼兼容地址api_key="sk-你的阿里云百炼密钥"# 【必填】你的 API Key}

魔搭apikey示例

先配置环境变量MODELSCOPE_API_KEY。
注:魔搭和百炼的key不通用。

代码略。

阿里云百炼openai(通义千问)示例

先配置环境变量DASHSCOPE_API_KEY。

通义千问openai现在应该都划到百炼了。

代码:

fromopenaiimportOpenAIimportos# 1. 初始化客户端# 关键点:base_url 指向阿里云的兼容接口地址API_KEY=os.getenv("DASHSCOPE_API_KEY","YOUR API KEY")print(f"🔍 代码读取到的API_KEY:{API_KEY}")client=OpenAI(api_key=API_KEY,# 替换为你的实际 Key (sk-...)base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")# 2. 发起对话请求try:response=client.chat.completions.create(model="qwen-plus",# 模型名称:qwen-turbo, qwen-plus, qwen-max 等messages=[{"role":"system","content":"你是一个有用的助手。"},{"role":"user","content":"请用 Python 写一个快速排序算法。"}],temperature=0.7,max_tokens=1024,stream=False# 设置为 True 可开启流式输出)# 3. 获取并打印结果content=response.choices[
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进