Python调用大模型API实战:DeepSeek/GPT/Claude完整代码指南(2026版)

80 阅读2分钟

前言

大家好,我是船长。

今天DeepSeek V4开放了百万级上下文能力,这对于AI应用开发者来说是一个重大利好。作为数据分析师和Python开发者,如何快速上手调用这些大模型API,是一个很实用的技能。

今天分享Python调用大模型API的完整实战代码,包括DeepSeek、GPT、Claude等主流模型的调用方式,以及token计算、流式输出、错误处理等实战技巧。

一、环境准备

首先安装必要的依赖:

pip install openai anthropic requests tiktoken

二、调用DeepSeek API

DeepSeek是国内领先的大模型提供商,API调用方式与OpenAI兼容:

from openai import OpenAI

初始化客户端

client = OpenAI( api_key="your-deepseek-api-key", base_url="api.deepseek.com" )

同步调用

response = client.chat.completions.create( model="deepseek-chat", messages=[ {"role": "system", "content": "你是一个数据分析助手"}, {"role": "user", "content": "请解释什么是数据清洗"} ], max_tokens=1000, temperature=0.7 )

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

三、流式输出实现

流式输出可以提升用户体验,特别适合长文本生成场景:

流式调用示例

stream = client.chat.completions.create( model="deepseek-chat", messages=[{"role": "user", "content": "写一个Python快速排序"}], stream=True )

for chunk in stream: if chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end="", flush=True)

四、Token计算与成本控制

使用tiktoken库计算token数量,控制API调用成本:

import tiktoken

def count_tokens(text, model="gpt-3.5-turbo"): """计算文本token数量""" encoding = tiktoken.encoding_for_model(model) return len(encoding.encode(text))

def estimate_cost(text, model="gpt-3.5-turbo"): """估算API调用成本""" tokens = count_tokens(text, model) # gpt-3.5-turbo: $0.002/1K tokens (2024价格) cost_per_1k = 0.002 return tokens / 1000 * cost_per_1k

使用示例

text = "这是一段测试文本,用于计算token数量" print(f"Token数: {count_tokens(text)}") print(f"预估成本: ${estimate_cost(text):.6f}")

五、错误处理与重试机制

生产环境必须做好错误处理和重试机制:

import time from openai import RateLimitError, APIError

def call_with_retry(client, messages, max_retries=3, delay=1): """带重试机制的API调用""" for attempt in range(max_retries): try: response = client.chat.completions.create( model="deepseek-chat", messages=messages ) return response except RateLimitError: print(f"限流,第{attempt+1}次重试...") time.sleep(delay * (attempt + 1)) except APIError as e: print(f"API错误: {e}") if attempt == max_retries - 1: raise return None

使用示例

messages = [{"role": "user", "content": "你好"}] response = call_with_retry(client, messages)

六、实用封装类

封装一个通用的LLM调用类,方便项目使用:

class LLMClient: def init(self, provider="deepseek", api_key=None): self.provider = provider if provider == "deepseek": self.client = OpenAI(api_key=api_key, base_url="api.deepseek.com") self.model = "deepseek-chat" elif provider == "openai": self.client = OpenAI(api_key=api_key) self.model = "gpt-3.5-turbo"

def chat(self, prompt, system=None, **kwargs):
    messages = []
    if system:
        messages.append({"role": "system", "content": system})
    messages.append({"role": "user", "content": prompt})
    
    response = self.client.chat.completions.create(
        model=self.model,
        messages=messages,
        **kwargs
    )
    return response.choices[0].message.content

def batch_chat(self, prompts):
    """批量处理多个prompt"""
    return [self.chat(p) for p in prompts]

使用示例

llm = LLMClient(provider="deepseek", api_key="your-key") result = llm.chat("解释什么是数据分析")

七、总结

今天分享了Python调用大模型API的完整实战技能:

  • DeepSeek API调用(与OpenAI兼容)

  • 流式输出实现

  • Token计算与成本控制

  • 错误处理与重试机制

  • 通用LLM封装类

大模型API调用是AI应用开发的基础技能。掌握了这些技能,你就可以快速构建各种AI辅助工具,提升工作效率。

觉得有用,转给需要的朋友。