日拱一卒,终成卷王。

——序


我是按照黑马程序员的课程来学的。里面的内容含量比较少,可以1.5倍速听。

https://www.bilibili.com/video/BV1yjz5BLEoY

现在先开通阿里云百炼平台:

账号注册、登录,然后拿到自己的密钥

然后搜索模型广场:

from openai import OpenAI
import os

client = OpenAI(
    # 如果没有配置环境变量,请用阿里云百炼API Key替换:api_key="sk-xxx"
    api_key=os.getenv("DASHSCOPE_API_KEY"),
    base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)

messages = [{"role": "user", "content": "什么是原神"}]
completion = client.chat.completions.create(
    model="qwen3.5-plus",  # 您可以按需更换为其它深度思考模型
    messages=messages,
    extra_body={"enable_thinking": True},
    stream=True
)
is_answering = False  # 是否进入回复阶段
print("\n" + "=" * 20 + "思考过程" + "=" * 20)
for chunk in completion:
    delta = chunk.choices[0].delta
    if hasattr(delta, "reasoning_content") and delta.reasoning_content is not None:
        if not is_answering:
            print(delta.reasoning_content, end="", flush=True)
    if hasattr(delta, "content") and delta.content:
        if not is_answering:
            print("\n" + "=" * 20 + "完整回复" + "=" * 20)
            is_answering = True
        print(delta.content, end="", flush=True)

就可以得到结果了。

我们可以在这里学一下AI输出的写法:

client,这里面最重要的就是两个参数:
api_key和base_url。
其中api_key如果直接写到代码里可能会引发泄露问题,那么这个时候就可以考虑在本机配置环境变量,从而省去写在这里的步骤。

completion,这里面有比较多的参数,最重要的是:
model和messages。
其中messages是提供给模型的消息,是list类型,可以包含多个字典消息。每个字典消息包含“role”和“content”两个key。role角色又能够包括三个内容:system——设定助手的角色、行为和规则 assistant——代表助理 user——代表用户。

hasattr是Python的一个内置函数,表示里面“是否有此属性”,作用是检查一个“对象(Object)”是否有这样的属性和方法。在LLM的流式传输里面,模型传输的chuck结构是动态变化的。

更多推荐