AIGC: 关于ChatGPT中的核心API调用示例

Open AI 的 api 调用示例

  • API的调用的文档:https://platform.openai.com/docs/api-reference/introduction
  • ChatGPT官方提供了 Python版的包 和 Nodejs版的包
    • $pip install openai
    • $npm install openai
  • 我们使用 python3.8版本来安装: $sudo python3.8 -m pip install openai
  • 大家可以在自己的python环境里面呢进行一下安装
  • 官方python版的 OpenAI 模块,除了最基础的对于Chat的API的调用,还封装了很多其他模型,其他场景的一些使用方法
  • 我们直接通过python版的 OpenAI 去调用是比较简单的,是比较容易看到效果的
    • 因为python版它有很多比较成熟的一些库和第三方的一些模块
    • java版的client和其他第三方组件的集成是比较困难的
    • 在机器学习领域,python,它整体的生态还是比较好的
  • 对于 Open AI, 它的API是需要API Key去进行认证的

1 )通过 curl 命令来访问

  • 最简单的一个 api 调用示例
    • 通过去访问models这个接口去列出 open ai 目前所支持的所有的模型

      shell 复制代码
      curl -x http://127.0.0.1:7890 https://api.openai.com/v1/models \
        -H "Authorization: Bearer $OPENAI_API_KEY$"
    • 上面 -x http://127.0.0.1:7890 是配置的代理(替换使用自己配置的代理即可),国内没法直接访问 open ai 的接口

    • $OPENAI_API_KEY$ 替换成自己的 API_KEY

  • 回车执行 curl 命令,即可正确响应

2 )通过 python 程序处理

python 复制代码
import os
import openai

openai.proxy = "http://127.0.0.1:7890"
openai.api_key = "此处填入您的 api_key"
openai.Model.list()
  • 此处我们在控制台可看到,返回的结果获取到了openi所提供的相关的这些模型
    • 如果没有成功的去获取到返回的结果
    • 那么,可能就需要看一下是否是 api_key 有问题还是你的网络有问题

Open AI 聊天接口的调用

  • 文档第三项: Making requests 菜单

    • https://platform.openai.com/docs/api-reference/making-requests

      shell 复制代码
      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": "Say this is a test!"}],
          "temperature": 0.7
        }'
    • 返回

      json 复制代码
       {
          "id": "chatcmpl-abc123",
          "object": "chat.completion",
          "created": 1677858242,
          "model": "gpt-3.5-turbo-0301",
          ... // 此处省略后续
        }
       ```
  • 核心的 chat 接口,菜单第五项, Chat

    • https://platform.openai.com/docs/api-reference/chat/create
    • 我们看一下这个接口: https://api.openai.com/v1/chat/completions
    • body
      • model Required
      • messages Required
        • role Required
        • content Required
        • name Optional
        • function_call Optional
      • functions Optional
        • name Required
        • description Optional
        • parameters Required
      • temperature Optional 较高的温度值让输出更加随机,较低的温度值会使输出更稳定
      • top_p Optional 控制输出的随机性
      • n Optional 返回几个结果,默认是1个结果
      • stream Optional 交互是否是流式的,默认是 false
      • stop Optional 停用词
      • max_tokens 所允许的最大的token的数量, 这里是设置的是模型生成的最大的输入长度,可以控制模型生成文本的长度
      • presence_penalty 存在惩罚,决定模型是否偏好新词语的参数,设置较高值会让模型倾向于生成新出现的词而不是重复已有的词
      • frequency_penalty 频率惩罚,决定模型是否偏好常见词语的参数,设置较高值会让模型倾向于生成不常见的词语
      • ...
  • 返回

    json 复制代码
    {
      "id": "chatcmpl-123",
      "object": "chat.completion",
      "created": 1677652288,
      "choices": [
        {
          "index": 0,
          "message": {
            "role": "assistant",
            "content": "\n\nHello there, how many I ..."
          },
          "finish_reason": "stop"
        }
      ],
      // 用于计算本次会话 tokens 的数量
      "usage": {
        "prompt_tokens": 9,
        "completion_tokens": 12,
        "total_tokens": 21
      }
    }
  • 可以通过open ai所提供的方法去对我们的 Prompt 去进行拆分,拆分成tokens

  • 可以通过官方提供的方法去计算tokens的数量

  • 使用python程序测试下

    py 复制代码
    import os
    import openai
    
    openai.proxy="http://127.0.0.1:7890"
    openai.api_key = '您的api_key'
    
    pcomletion = openai.ChatCompletion.create(
      model="gpt-3.5-turbo",
      messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Hello!"},
      ]
    )
    
    print(completion.choices[0].message)
  • 输出

    py 复制代码
    "role": "assistant",
    "content": "Hello! How can I assist you today?"
相关推荐
是Yu欸13 小时前
AI跨模态鉴伪技术实测
人工智能·安全·ai作画·aigc·合合信息·ai-native·waic
春风野草13 小时前
AI Agent 长任务实战:取消、重试、中断恢复,不是加几个按钮这么简单
aigc·ai编程
刘棕霆13 小时前
造数脚本越堆越乱:稳定的沉淀成引擎,变化的留在配置
aigc·agent·测试
网易云信14 小时前
网易智企亮相 2026 世界人工智能大会:一站式企业 AI 应用覆盖三大企业现场
人工智能·aigc·线下活动
todoitbo15 小时前
Claude Code 接蓝耘实测:选第三方 API 的三条铁律
人工智能·ai·aigc·claude
豌豆学姐16 小时前
likeadmin-api 视频生成工作流实战:Seedance 2.0 接口从素材到任务查询
aigc·音视频·api·视频生成·likeadmin-api
ServBay1 天前
AI Gateway 指南,如何用统一网关管理多模型 API
aigc·api·ai编程
大海变好AI1 天前
AIGC分层推理落地能否串联多工具完成自动化闭环
人工智能·python·自动化·aigc
我要割麦子1 天前
从零到一手撸 Agent 系列 — 第 3 篇:Agent 的"心跳" — 主循环与 System Prompt
aigc·agent
三声三视1 天前
交互式用够了?用 Agent SDK 把 Claude 塞进 Python Web 服务
人工智能·python·ai·aigc·ai编程