安装
pip install openai
使用
from openai import OpenAI
from openai.types.chat import ChatCompletionUserMessageParam
OPENAI_BASE_URL = "https://api.deepseek.com"
OPENAI_API_KEY = "sk-xxxx"
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url=OPENAI_BASE_URL
)
# 使用明确的类型
messages: list[ChatCompletionUserMessageParam] = [
{
"role": "user",
"content": "你是谁?",
}
]
completion = client.chat.completions.create(
model="deepseek-chat",
messages=messages
)
print(completion.choices[0].message.content)
角色
- user:用户的消息
- assistant:AI助手,LLM给出的回复
- system:系统,对LLM的设定,角色、性格等要求,尽量放在第一个
- tool:工具,调用的对话记录
温度参数
温度可以控制LLM生成文本的创造性和随机性,范围0-2,默认1
- 接近0:生成文本保守,重复性高,适合准确性和一致性的任务,如写代码,事实,数学等
- 接近2:生成文本创新、发散,重复性底,适合不太场景但仍然合理的任务,如故事创作,灵感风暴等
completion = client.chat.completions.create(
model="deepseek-chat",
messages=messages,
temperature=0
)
流式
from openai import OpenAI
from openai.types.chat import ChatCompletionUserMessageParam
OPENAI_BASE_URL = "https://api.deepseek.com"
OPENAI_API_KEY = "sk-xxx"
client = OpenAI(
api_key=OPENAI_API_KEY,
base_url=OPENAI_BASE_URL
)
# 使用明确的类型
messages: list[ChatCompletionUserMessageParam] = [
{
"role": "user",
"content": "你是谁?",
}
]
completion = client.chat.completions.create(
# 模型
model="deepseek-chat",
# 消息
messages=messages,
# 温度
temperature=0.5,
# 流式
stream=True
)
for chunk in completion:
# 打印每次增量的内容,不换行
print(chunk.choices[0].delta.content, end="")
模型测试
# 拉取INT4量化版本(4GB左右显存占用)
ollama pull qwen2.5:7b-instruct-q4_K_M
# 运行
ollama run qwen2.5:7b-instruct-q4_K_M
- 中文理解顶级:原生针对中文优化,懂网络热词和文化语境
- 工具调用原生支持:通义千问系列专门优化了Function Calling能力
- 规划能力强:7B级别中逻辑推理和任务规划表现优秀
- 长上下文:支持32K tokens,可以处理复杂多轮对话
