OpenAI库的基本使用

1.获取客户端对象

复制代码
from = openai ipmort OpenAI

client:OpenAI=OpenAI(
    api_key="your_api_key_here",
    base_url=" "

主要是用以上两个参数:

  • api_key:模型服务商提供的APIKEY密钥
  • base_url:模型服务商的API接入地址,主要基于此参数来切换不同的模型服务商

2.调用模型

复制代码
from openai.types.chat.chat_completion import ChatCompletion

response:ChatCompletion = client.chat.completion.create(
    modle = "quwen3-max",
    messages = [
        {"role":"system","content":"你是一个Python编程专家。"},
        {"role":"system","content":"我是一个Python编程专家,请问有什么可以帮助你的吗?"},
        {"role":"user","content":"for循环输出1到10的数字"}
    ]
)

client.chat.completion.create创建ChatCompletion对象

主要参数有两个:

  • modle:选择所用模型
  • message:提供给模型的消息,类型:list,可以包含多个字典消息(可迭代对象,iterable)。每个字典消息包含两个key,role:角色,content:内容。
  • system角色:设定助手的整体行为,角色和规则,为对话提供上下文,框架是全局的背景设定,影响后续所有交互。
  • assistant角色:代表AI助手的回答
  • user角色:代表用户发送问题,指令或需求。

3.处理结果

response变量就是ChatCompletion对象,其包含信息如下:

复制代码
{
    "id":"chatcmpl-xxxx",
    "object":"chat.completion",
    "created":1735689600,
    "modele":"gpt-3.5-turbo-0125",
    "choice":[
        {
            "index":0,
            "message":{
                "role":"assistant",
                "content":"生成的回复内容"
            },
            "finish_reason":"stop" #stop=正常结束,length=令牌数超限,function_call=触发函数调用
        }
    ],
    "usage";{#令牌消耗统计
        "prompt_tokens":50,
        "completion_tokens":80,
        "total_tokens":130
     }
}

可以通过

复制代码
print(response.choice[0].message.content)

输出模型给出的回答新信息

4.OpenAI库的流式输出

可以设定结果输出为stream模式(流式输出),获得更好的使用体验

开启流式输出的主要就两步:

  • 在client.chat.completions.create()调用模型的时候设定参数:stream=True

  • for循环response对象,并在循环输出内容

    for chunk in response:
    if chunk.choices and len(chunk.choices)>0:
    content = chunk.choices[0].delta.content
    if content:
    print(content, end="", flush=True)

补充:Json格式

Json是带有格式的字符串,主要用于数据交换,即程序和程序之间的信息交互。

Json主要有两种结构:

Json对象:

复制代码
    {
        "key":value,
        "key":value
    }
  • key:必须是字符串
  • value:可以是数字,字符串,列表,Josn数组或Json对象

Json数组:

复制代码
[{},{},{},...]

即一堆Json对象的组合体

Python中使用Json

Json在Python中,就是字典和列表套字典的字符串表现形式。

Python中使用Json主要完成:

  • 将Python字典,列表转换成Json字符串
  • 读取Json字符串,转换为Python字典或列表

主要使用Python内置的Json库:

  • json.dumps(字典或列表,ensure_ascii=False):将字典或列表转换为Json字符串,返回值:Json字符串。
  • json.loads(json字符串):将字符串转换Python字典或列表,返回值:Python字典或Python列表。
相关推荐
OKkankan9 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用
山哥ol10 小时前
【Geany 环境配置与中文乱码解决参考】
python
会飞锦鲤11 小时前
基于 Mask R-CNN 的药片缺陷检测系统
人工智能·pytorch·python·神经网络·resnet-50
默 语11 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
清水白石00811 小时前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
Patrick在香港12 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据
IT毕设梦工厂12 小时前
计算机毕业设计选题推荐:基于大数据的草鱼价格分析与可视化|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目
大数据·hadoop·python·数据挖掘·数据分析·课程设计·大数据毕设项目
GISHUB12 小时前
基于QGIS 3.44开发Python插件完整教程
python·qgis
大数据魔法师12 小时前
curl_cffi从入门到实战
爬虫·python
Sylvia33.12 小时前
火星数据体育API|一站式接入足球篮球电竞等18+项目实时数据
java·开发语言·python·websocket·游戏