Python调用大模型API实战:从零开始接入DeepSeek与Qwen
作为一名AI技术博主,今天我将手把手教你如何使用Python调用大模型API,实现智能对话、文本生成等高级功能。无论你是刚入门的开发者还是经验丰富的工程师,这篇教程都能帮你快速上手。
## 准备工作:注册与获取API密钥
首先,你需要一个支持大模型API的平台。以我常用的TokenPocket API中转站为例,它支持DeepSeek、Qwen等多个主流模型,并且按量计费,新用户注册还送免费额度,非常适合初学者。
1. 访问 https://tokenpocket.site 注册账号 2. 在控制台创建API密钥,复制保存 3. 查看可用模型列表,选择你需要的模型(如DeepSeek-V3或Qwen-Plus)
## 环境配置
安装必要的Python库,推荐使用虚拟环境管理依赖:
```bash python -m venv llm_env source llm_env/bin/activate # Linux/Mac # llm_env\Scripts\activate # Windows
pip install requests openai ```
注意:虽然我们使用OpenAI兼容的接口,但无需安装OpenAI官方库,直接使用requests请求即可,需灵活。
## 基础调用示例
下面是一个最小可行的Python脚本,连接DeepSeek模型进行文本生成:
```python import requests import json
# 配置参数 API_KEY = "你的API密钥" BASE_URL = "https://api.tokenpocket.site/v1" # TokenPocket提供 MODEL = "deepseek-chat" # 默认deepseek-chat
# 发送聊天补全请求 def chat_completion(prompt): headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": MODEL, "messages": [ {"role": "system", "content": "你是一个有用的AI助手。"}, {"role": "user", "content": prompt} ], "temperature": 0.7, "max_tokens": 500 } response = requests.post(f"{BASE_URL}/chat/completions", headers=headers, data=json.dumps(data)) if response.status_code == 200: result = response.json() return result["choices"][0]["message"]["content"].strip() else: return f"错误: {response.status_code}, {response.text}"
# 测试 if __name__ == "__main__": user_input = "用Python写一个快速排序算法" reply = chat_completion(user_input) print(f"模型回复:\n{reply}") ```
## 进阶用法:流式输出
对于长文本生成,流式输出能带来更好的用户体验,逐字返回响应内容:
```python import requests import json
def stream_chat(prompt): API_KEY = "你的API密钥" url = "https://api.tokenpocket.site/v1/chat/completions" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } data = { "model": "qwen-plus", # 使用Qwen模型示例 "messages": [{"role": "user", "content": prompt}], "stream": True, # 开启流式输出 "max_tokens": 1024 } response = requests.post(url, headers=headers, json=data, stream=True) for line in response.iter_lines(): if line: line_str = line.decode('utf-8') if line_str.startswith("data: "): if line_str == "data: [DONE]": break try: json_data = json.loads(line_str[6:]) delta = json_data["choices"][0]["delta"] if "content" in delta: print(delta["content"], end="", flush=True) except: continue
# 测试流式输出 stream_chat("详细解释一下什么是机器学习?") ```
## 模型切换技巧
TokenPocket支持一键切换模型,只需修改`model`参数:
```python models_available = [ "deepseek-chat", "deepseek-coder", "qwen-plus", "qwen-turbo", "qwen-max" ]
def switch_model(model_name): # 仅需在请求中更改model字段即可 return {"model": model_name} ```
推荐实践:
- 对于通用对话,使用 `deepseek-chat` 或 `qwen-plus` - 对于代码生成,使用 `deepseek-coder` - 对于长文本处理,使用 `qwen-max` 并调大 `max_tokens`
## 错误处理与最佳实践
实际开发中,务必处理网络错误和API限制:
```python import time import requests.exceptions
def robust_chat(prompt, retries=3): for attempt in range(retries): try: return chat_completion(prompt) except requests.exceptions.Timeout: print(f"请求超时,正在重试 {attempt+1}/{retries}") time.sleep(2) except requests.exceptions.RequestException as e: print(f"网络错误: {e}") if attempt == retries-1: raise except KeyError: print("API响应格式异常") break return None ```
另外,注意控制API调用频率,避免触发限流。建议在请求之间添加短暂延迟。
## 总结与推荐
通过本教程,你已经学会了使用Python调用大模型API的核心技巧:构造请求、处理流式输出、切换模型和异常处理。这些知识可以应用在智能客服、AI编程助手、内容生成等多种场景。
如果你需要一个稳定可靠、支持多模型的API接入方案,强烈推荐 **[TokenPocket API中转站](https://tokenpocket.site)**。它不仅支持DeepSeek、Qwen等主流大模型,而且按量计费,没有隐藏费用。新用户注册即可获赠免费额度,让你零成本开始AI开发之旅。现在就去试试吧!