我的个人网站:乐乐主题创作室
DeepSeek 作为国内领先的人工智能平台,提供了强大的 API 接口服务,涵盖自然语言处理、计算机视觉、语音识别等多个领域。其 API 具有高性能、低延迟、易于集成的特点,已成为众多企业和开发者构建 AI 应用的首选方案。
DeepSeek API 主要提供以下核心功能:
DeepSeek API 目前提供多个版本:
首先需要在 DeepSeek 官网完成开发者账号注册:
推荐使用 Python 3.8+ 作为开发语言,安装必要的依赖库:
pip install requests python-dotenv tqdm
最佳实践是将 API Key 存储在环境变量中,而非直接硬编码在代码里:
# .env 文件
DEEPSEEK_API_KEY="your_api_key_here"
DEEPSEEK_API_ENDPOINT="https://api.deepseek.com/v1"
使用 python-dotenv 加载配置:
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("DEEPSEEK_API_KEY")
api_endpoint = os.getenv("DEEPSEEK_API_ENDPOINT")
DeepSeek 主要采用 RESTful 风格的 API 设计,以下是文本生成 API 的基础调用示例:
import requests
import json
def call_deepseek_text_generation(prompt, max_tokens=200, temperature=0.7):
"""
调用DeepSeek文本生成API
参数:
prompt (str): 输入的提示文本
max_tokens (int): 生成的最大token数
temperature (float): 控制生成随机性的温度参数
返回:
dict: API响应结果
"""
headers = {
"Authorization": f"Bearer {
api_key}",
"Content-Type": "application/json"
}
payload = {
"model": "deepseek-text-3.0",
"prompt": prompt,
"max_tokens": max_tokens,
"temperature": temperature,
"top_p": 0.9,
"frequency_penalty": 0.5,
"presence_penalty": 0.5
}
try:
response = requests.post(
f"{
api_endpoint}/completions",
headers=headers,
data=json.dumps(payload)
)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"API调用失败: {
e}")
return None
对于长文本生成场景,可以使用流式 API 来实时获取部分结果:
def stream_deepseek_response(prompt, max_tokens=500):
"""
流式调用DeepSeek API,实时获取生成结果
参数:
prompt (str): 输入的提示文本
max_tokens (int): 生成的最大token数
返回:
generator: 生成器,逐个返回生成的token
"""
headers = {
"Authorization": f"Bearer {
api_key}",
"Content-Type": "application/json",
"Accept": "text/event-stream"
}
payload = {
"model": "deepseek-text-3.0",
"prompt": prompt,
"max_tokens": max_tokens,
"stream": True
}
try:
with requests.post(
f"{
api_endpoint}/completions",
headers=headers,
json=payload,
stream=True
) as response:
response.raise_for_status()
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
if decoded_line.startswith('data:'