通义千问与 DeepSeek 实践之旅
通义千问与 DeepSeek 实践之旅
引言
在当今的人工智能时代,大语言模型展现出了令人惊叹的能力。通义千问和 DeepSeek 作为两款备受关注
的大模型,为开发者提供了丰富的 API 接口,使我们能够将其强大的语言处理能力集成到自己的应用程序
中。本文将详细介绍如何注册账号、获取 API 密钥,以及使用requests库调用它们的 API 实现简单问答功
能。
一、注册账号与获取 API 密钥
(一)通义千问
注册账号:访问阿里云官网(https://www.aliyun.com/ ),按照注册流程填写必要信息,完成账号创
建。这一步如同打开进入通义千问世界的大门钥匙。
获取 API 密钥:成功登录账号后,在通义千问相关产品页面仔细查找获取 API 访问权限及密钥的入口。不
同的使用场景和权限获取方式可能存在差异,务必参考通义千问官方文档进行操作。密钥就像是通行证,
确保我们能够合法调用 API 服务。
(二)DeepSeek
注册账号:访问 DeepSeek 官网(请通过官方渠道确认具体网址),按照页面引导完成注册流程,创建属
于自己的账号。这是与 DeepSeek 建立连接的第一步。
获取 API 密钥:注册成功后,在用户设置或 API 相关设置区域,依据官方文档指引,查找并获取 API 密
钥。此密钥将是我们后续调用 API 的关键凭证。
二、API 调用流程详解
(一)通义千问
请求地址:通义千问的 API 请求地址与阿里云的服务架构紧密相关,具体地址需参考官方 API 文档。通常
它类似https://[特定域名]/v[版本号]/[具体接口路径]的形式,不同的 API 功能对应不同的请求地址,犹如
不同的目的地需要不同的路径前往。
请求参数:以文本生成场景为例,常见参数有message,用于输入期望模型基于其生成内容的文本提示。
例如:
注:messages中的参数在官方文档中有描述,后面我们使用agent时会使用到
from openai import OpenAI
try:
client = OpenAI(
# 若没有配置环境变量,请用阿里云百炼API Key将下行替换为: api_key="sk-xxx",
api_key="你得apikey",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus", # 模型列表: https://help.aliyun.com/model-studio/getting-started/models
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'} # messages中的参数在官方文档中有描述,后面我们使用agent时会使用到
]
)
print(completion.choices[0].message.content)
except Exception as e:
print(f"错误信息:{e}")
print("请参考文档:https://help.aliyun.com/model-studio/developer-reference/error-code")
这些参数就像给模型下达的指令,告诉它我们想要什么样的输出。
- 响应解析:通义千问的响应一般以 JSON 格式呈现。成功调用后,响应数据会包含生成的文本内容等关
键信息。我们需要从响应中提取相关字段,获取所需的生成结果。例如:
{
"model": "qwen-plus",
"id": "chatcmpl-3db7c447-fc69-9aa7-9e8e-93e9400c76e9",
"choices": [
{
"message": {
"content": "你好!我是通义千问(Qwen),阿里巴巴集团旗下的超大规模语言模型。我能够回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!😊",
"role": "assistant"
},
"index": 0,
"finish_reason": "stop"
}
],
"created": 1772528047,
"object": "chat.completion",
"usage": {
"total_tokens": 88,
"completion_tokens": 66,
"prompt_tokens": 22,
"prompt_tokens_details": {
"cached_tokens": 0
}
}
}
这就像是从一个装满信息的包裹中,准确找到我们需要的那部分内容。
(二)DeepSeek
请求地址:同样要依据 DeepSeek 官方提供的 API 文档来确定请求地址,一般是特定的域名和接口路径组
合,形式类似https://api.deepseek.com/v[版本号]/[具体功能路径]。这是我们与 DeepSeek 模型进行通
信的 “地址”。
请求参数:参数设置因不同的 API 功能而异。比如对于对话功能,可能有query参数传入用户的问题,还
可能有context参数用于提供对话上下文信息等。示例如下:
from openai import OpenAI
client = OpenAI(
api_key="你的apikey",
base_url="https://api.deepseek.com")
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": "你是谁"}, # messages中的参数在官方文档中有描述,后面我们使用agent时会使用到
],
stream=False
)
print(response.choices[0].message.content)
这些参数帮助模型更好地理解我们的问题,从而给出更精准的回答。3. 响应解析:响应也是以 JSON 格式
返回。响应数据中会包含模型针对请求生成的回复内容等信息。例如:
{
"id": "3118f625-f208-4510-a746-b7aafb9e11f4",
"object": "chat.completion",
"created": 1772528410,
"model": "deepseek-chat",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "你好!我是DeepSeek,由深度求索公司创造的AI助手。😊\n\n我是一个纯文本模型,虽然不支持多模态识别功能,但我有文件上传功能,可以帮你处理图像、txt、pdf、ppt、word、excel等文件,并从中读取文字信息进行分析处理。我完全免费使用,拥有128K的上下文长度,还支持联网搜索功能(需要你在Web/App中手动点开联网搜索按键)。\n\n你可以通过官方应用商店下载我的App来使用。我很乐意帮助你解答问题、处理文档、进行对话交流等等!\n\n有什么我可以帮你的吗?无论是学习、工作还是日常问题,我都很愿意为你提供帮助!✨"
},
"logprobs": null,
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 10,
"completion_tokens": 141,
"total_tokens": 151,
"prompt_tokens_details": {
"cached_tokens": 0
},
"prompt_cache_hit_tokens": 0,
"prompt_cache_miss_tokens": 10
},
"system_fingerprint": "fp_eaab8d114b_prod0820_fp8_kvcache"
}
我们要做的就是从这个 JSON 响应中提取出answer字段,得到模型给出的答案。
三、使用 requests 库实现简单问答功能
(一)通义千问 API 调用代码实现
def call_qwen_api(api_key, prompt, model="qwen-plus"):
# requests调用时url后面需要增加chat/completions
url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"model": model,
"messages": [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": prompt},
],
"stream": False
}
response = requests.post(url, headers=headers, json=data)
return response.json()
if __name__ == "__main__":
QWEN_API_KEY = "你的apikey"
prompt = "你是谁"
response = call_qwen_api(QWEN_API_KEY, prompt)
print(response["choices"][0]["message"]["content"])
在运行此代码前,务必将"通义千问实际请求地址"替换为通义千问真实的 API 请求地址,将"你的通义千问
API密钥"替换为自己获取到的 API 密钥。这样,我们就能通过代码与通义千问进行交互,获取它的回答。
(二)DeepSeek API 调用代码实现
def call_deepseek_api(api_key,prompt,model="deepseek-chat"):
# requests调用时url后面需要增加/v1/chat/completions
url = "https://api.deepseek.com/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"model": model,
"messages": [
{"role": "system", "content": "You are a helpful assistant"},
{"role": "user", "content": prompt},
],
"stream": False
}
response = requests.post(url, headers=headers, json=data)
return response.json()
if __name__ == "__main__":
DEEPSEEK_API_KEY = "你的API_KEY"
prompt = "你是谁"
response = call_deepseek_api(DEEPSEEK_API_KEY,prompt)
print(response["choices"][0]["message"]["content"])
同样,运行前要把"DeepSeek实际请求地址"换成 DeepSeek 真实的 API 请求地址,把"你的DeepSeek
API密钥"替换为实际获取的密钥。通过这段代码,我们能够借助 DeepSeek 的能力,实现简单的问答功
能。
四、总结
通过今天的学习,我们了解了通义千问和 DeepSeek 大模型 API 的注册、调用流程,并使用requests库实
现了简单的问答功能。希望这篇博客能为你在探索大模型 API 的道路上提供一些帮助。在实际应用中,你
可以根据自己的需求进一步优化参数设置,挖掘模型更多的潜力。如果你在实践过程中遇到任何问题,欢
迎在评论区留言交流。
更多推荐



所有评论(0)