Skip to content

Files

Latest commit

author
郑家骜[ào]
Feb 18, 2025
cd2d75c · Feb 18, 2025

History

History

Python3-AI-DeepSeek

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Feb 18, 2025
Feb 18, 2025
Feb 18, 2025
Feb 18, 2025

README.md

DeepSeek

安装Python依赖

确保你已经安装了Python 3.8或更高版本。你可以从Python官方网站下载并安装。

pip3 install openai
# or
pip install -r requirements.txt

DeepSeek API 示例

对话 API

简单示例-场景:多轮对话

from openai import OpenAI

# DeepSeek API 是一个“无状态” API,即服务端不记录用户请求的上下文,用户在每次请求时,需将之前所有对话历史拼接好后,传递给对话 API。
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

# Round 1
messages = [{"role": "user", "content": "What's the highest mountain in the world?"}]
# messages = [{"role": "user", "content": "世界上最高的山是什么?"}]
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=messages
)

messages.append(response.choices[0].message)
print(f"Messages Round 1: {messages}")

# Round 2
messages.append({"role": "user", "content": "What is the second?"})
# messages.append({"role": "user", "content": "第二个是什么?"})
response = client.chat.completions.create(
    model="deepseek-chat",
    messages=messages
)

messages.append(response.choices[0].message)
print(f"Messages Round 2: {messages}")

简单示例-场景:个人助手

# Please install OpenAI SDK first: `pip3 install openai`

from openai import OpenAI

# client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
client = OpenAI(api_key="sk-62aa54bcf5b2478e88c4bcd4c6d852d1", base_url="https://api.deepseek.com")

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        # 系统角色:可以根据系统角色输入的语言,来判断回答的内容是 `英文or中文`
        # {"role": "system", "content": "You are a helpful assistant"},
        {"role": "system", "content": "你是个乐于助人的助手"},

        # 用户角色
        # {"role": "user", "content": "Hello"},
        {"role": "user", "content": "你好"},
    ],
    stream=False
)

print(response.choices[0].message.content)

推理 API

推理-非流式:

from openai import OpenAI

# client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages
)

reasoning_content = response.choices[0].message.reasoning_content
content = response.choices[0].message.content

# Round 2
messages.append({'role': 'assistant', 'content': content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages
)
# ...

流式-推理:

from openai import OpenAI

# client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")
client = OpenAI(api_key="<DeepSeek API Key>", base_url="https://api.deepseek.com")

# Round 1
messages = [{"role": "user", "content": "9.11 and 9.8, which is greater?"}]
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages,
    stream=True
)

reasoning_content = ""
content = ""

for chunk in response:
    if chunk.choices[0].delta.reasoning_content:
        reasoning_content += chunk.choices[0].delta.reasoning_content
    else:
        content += chunk.choices[0].delta.content

# Round 2
messages.append({"role": "assistant", "content": content})
messages.append({'role': 'user', 'content': "How many Rs are there in the word 'strawberry'?"})
response = client.chat.completions.create(
    model="deepseek-reasoner",
    messages=messages,
    stream=True
)
# ...