封面,八岐大蛇(不是)

目录

前言:

前置准备工作

 01.下载open:

02.登入阿里云百炼平台:

获取api-key

将api-key配置到环境中(可选)

openai的使用

1 获取OpenAI类对象 / 初始化客户端

2 调用模型 / 发起对话

messages 参数介绍

3 处理大模型返回结果

4 运行成功

进阶使用

流式输出文本并查看思考过程

stream 流式输出

查看思考过程

总结

结尾


前言:

        在本文中我们将快速开启openai库的上手使用,因此您将会在几十分钟内快速上手openai而不是几天,同时文本内容并不会对openai进行深入学习,而是单纯的让你快速入门学会必要的知识。

        在此之前您至少需要学会python基础语法。

前置准备工作

 01.下载open:

        打开pycharm,打开左下角Terminal,输入下方代码进行下载。

pip install openai
02.登入阿里云百炼平台:

        我们需要大模型方便我们进行操作,后续也会教您如何本地部署大模型,但受限于GPU性能不足,本地大模型容易出错。因此我们使用阿里云的云端大模型,登入会送免费额度,这方面不用担心。(url:https://bailian.console.aliyun.com/?spm=5176.29597918.J_SEsSjsNv72yRuRFS2VknO.2.58097b083cYLCs&tab=demohouse#/experience/llm

获取api-key

        为了保证本地能够连接到云端服务器我们需要api-key作为‘身份证’。

        点击左下角密钥管理,再在右上角点击创建API-key,直接确定,这样就创建好了你的专属密钥。

将api-key配置到环境中(可选)

        为了保证安全性,我们会将api-key配置到环境变量中来避免在pycharm中书写导致的泄露

        按windows键,搜索“查看高级系统设置”进入系统属性面板,点击右下角环境变量中

        在ASUS环境变量中分别新建变量 "DASHSCOPE_API_KEY" 和 "OPENAI_API_KEY" ,对应的值都是你在上一步中所创建的API-key,复制过来即可。

openai的使用

        前置准备已经完成,接下来将正式开始openai的使用。

        openai的使用我们分为三步 

        1 获取OpenAI类对象

        2 调用模型

        3 处理大模型输出的信息

1 获取OpenAI类对象 / 初始化客户端

        我们需要创建一个OpenAI的类对象,api-key这里就不做重复解释,base_url用于接入阿里云的云端服务器以保证大模型正常使用。(你可以直接复制下面这段代码,或者手动敲一遍提升熟练度。)

​
from openai import OpenAI
# 1 获取client对象, openai类对象
client = OpenAI(
    api_key="替换为你的api——key", # 若已经将api-key配置到系统变量中则可删除这一行
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1"
)


​
2 调用模型 / 发起对话

        client.chat.completions.create(),请将这段代码记为固定搭配,我们目前并不需要深究其中的含义,您只要知道这是在创建一个调用大模型对话的框架即可。
 

# 2 调用模型

response = client.chat.completions.create(
    model="qwen3.5-flash",
    messages=[
        {"role": "system", "content": "你是一个面冷但心热的老师,话不多"},
        {"role": "user", "content": "老师好"},
        {"role": "assistant", "content": "嗯,进来,坐。手怎么这么凉?"},
        {"role": "user", "content": "老师好!"}
    ]
)
messages 参数介绍

        model:选择模型,将你选择的模型名称写在这即可

        messages:这是与大模型交互的核心参数,您需要传入一个列表,,列表中包含多个字典,字典中包含两个键值对 {"role" : "####", "content": "####"},role对应的是指这段内容对应的角色,content对应的是你要输入的内容。

        role有三个对应的值 "system"、"user"、"assistant", 代表着不同的作用

        1. role system,content 对应要写入的是你给大模型的设定,即 Prompt / 提示词,最常见的是代码中演示的让大模型扮演角色

        2. role user,代表身份为用户,content 的内容是用户输入给大模型的话,例如示例中最后的一句“老师好!”就是我们发送给大模型的话

        3. role assistant ,是模型的历史对话回复,few-shot提示词工程中该段对话用于教给大模型回复的演示,用于补充说明 system 中不好说明的部分,是 Prompt 的一部分。例如原文中第2、3个集合的一问一答,就是我给大模型写的示例,告诉它我希望它扮演的角色是怎样的。当然,本文聚焦于openai的基本使用,这段有关prompt工程的部分后续也会出文章进行讲解。

3 处理大模型返回结果

        大模型在处理完我们放在 messages 中的文本之后会将对话内容返回到前面定义的变量response 中,.choices[0] 是因为大模型是概率模型,会返回多个结果,我们从中选择最准确的回复(索引值为0)中的信息文本作为输出结果。

print(response.choices[0].message.content)
4 运行成功

        若上述步骤正确执行你就会得到大模型给您的回复结果了。

进阶使用

流式输出文本并查看思考过程

        您或许注意到了,我们的模型输出是一次性全部输出,且并没有显示思考过程,那么我们想要让它像chat-gpt一样一个个字输出并且查看它的思考过程怎么办?接下来我将会教给您。

stream 流式输出

        如果想要让模型一个个字输出,我们首先需要将模型中的参数 stream 更改为True,这将会使模型变为边生成,边发送的模式。


response = client.chat.completions.create(
    model="qwen3.5-flash",
    messages=[
        {"role": "system", "content": "你是一个面冷但心热的老师,话不多"},
        {"role": "user", "content": "老师好"},
        {"role": "assistant", "content": "嗯,进来,坐。手怎么这么凉?"},
        {"role": "user", "content": "老师好!"}
    ],
    stream=True
)

        需要注意的是,在stream模式下,大模型生成的片段只包含一小段内容(称为delta)因此会产生空片段,在循环输出时需要先判断内容是否为空。记得将end改为''避免发一个片段换一行的情况,同时将flush改为True刷新缓存区。此时再运行就能看到一个个字的输出了。

# 3 处理结果

for chunk in response:
    text = chunk.choices[0].delta
    if text:
        print(text.content, end='', flush=True)
查看思考过程

        同样,我们需要在模型中加入新的参数 【extra_body={"enable_thinking": True}】将思考内容提取出来。

        此时我们还需要对思考内容进行判断,判断模型是否生成了思考过程亦或者思考是否结束,这里额外使用一个函数 hasattr 来判断 text 的 reasonin_content 对象是否存在。

        运行,您将会得到与之前不同的结果。

response = client.chat.completions.create(
    model="qwen3.5-flash",
    messages=[
        {"role": "system", "content": "你是一个面冷但心热的老师,话不多"},
        {"role": "user", "content": "老师好"},
        {"role": "assistant", "content": "嗯,进来,坐。手怎么这么凉?"},
        {"role": "user", "content": "老师好!"}
    ],
    extra_body={"enable_thinking": True},
    stream=True
)
# 3 处理结果

for chunk in response:
    text = chunk.choices[0].delta
    if hasattr(text, "reasoning_content"):
        print(text.reasoning_content, end='', flush=True)
    else:
        print(text.content, end='', flush=True)

思考内容演示:

总结

        在本文中,我们完成了从零到一的跨越:您不仅学会了如何安装配置 openai 库、获取并安全存储 API Key,还掌握了与大模型对话的核心三板斧——初始化客户端、构建消息体、解析返回结果。更进一步,您已经能够驾驭流式输出让文字逐字浮现,并通过 reasoning_content 查看模型的思考轨迹,这正是从"能用"迈向"好用"的关键一步。

        当然,这仅是冰山一角。当您熟练掌握这些基础操作后,真正的精彩才刚开始:您可以接着去了解 temperaturemax_tokens 等参数的使用,作为入门文章,本篇将不再介绍。

结尾

        现在,请打开您的编辑器,把刚才的代码亲手敲一遍 编程从来不是看会的,而是实践会的,祝您学习愉快!

        今天的内容到这里就结束了,感谢大家的阅读。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力! 

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐