LLM API 快速使用
OpenAI、Anthropic、DeepSeek —— 调用大模型的实用指南
为什么社科学生要学 LLM API?
应用场景:
- 文本数据分析(新闻、社交媒体、访谈)
- 内容分类和编码
- 文献总结和综述
- 问卷设计助手
- 数据清洗和标注
OpenAI API
安装与配置
bash
pip install openaipython
from openai import OpenAI
# 设置 API Key
client = OpenAI(api_key='your-api-key-here')
# 基本调用
response = client.chat.completions.create(
model="gpt-4",
messages=[
{"role": "system", "content": "你是一个数据分析助手"},
{"role": "user", "content": "解释什么是回归分析"}
]
)
print(response.choices[0].message.content)实战案例
案例 1:文本情感分析
python
def analyze_sentiment(text):
"""使用 GPT 分析情感"""
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是情感分析专家。回答:正面、负面或中性"},
{"role": "user", "content": f"分析这段文本的情感:{text}"}
]
)
return response.choices[0].message.content
# 批量分析
reviews = [
"这个产品太棒了!",
"质量很差,浪费钱",
"一般般,凑合能用"
]
for review in reviews:
sentiment = analyze_sentiment(review)
print(f"{review} → {sentiment}")案例 2:结构化数据提取
python
import json
def extract_info(text):
"""从非结构化文本提取信息"""
prompt = f"""
从以下文本中提取信息,返回 JSON 格式:
- name: 姓名
- age: 年龄
- occupation: 职业
- income_range: 收入范围
文本:{text}
"""
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}],
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
text = "我叫张三,今年35岁,是一名软件工程师,年薪大概在30-50万之间"
info = extract_info(text)
print(info)案例 3:批量文本分类
python
categories = ["经济", "政治", "社会", "文化", "科技"]
def classify_text(text, categories):
prompt = f"将以下文本分类到这些类别之一:{', '.join(categories)}\n\n文本:{text}\n\n只返回类别名称。"
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content.strip()
# 批量分类新闻
news = [
"央行今日下调利率0.25个百分点",
"新技术推动人工智能产业发展",
"社区开展志愿服务活动"
]
for article in news:
category = classify_text(article, categories)
print(f"{article[:20]}... → {category}")Anthropic Claude API
python
import anthropic
client = anthropic.Anthropic(api_key='your-api-key')
response = client.messages.create(
model="claude-3-5-sonnet-20241022",
max_tokens=1024,
messages=[
{"role": "user", "content": "解释什么是因果推断"}
]
)
print(response.content[0].text)DeepSeek API(国产、便宜)
python
from openai import OpenAI # DeepSeek 兼容 OpenAI 格式
client = OpenAI(
api_key='your-deepseek-key',
base_url='https://api.deepseek.com'
)
response = client.chat.completions.create(
model="deepseek-chat",
messages=[
{"role": "user", "content": "用中文解释统计显著性"}
]
)
print(response.choices[0].message.content)最佳实践
1. 成本控制
python
# 使用便宜的模型处理简单任务
def smart_call(text, task_complexity='simple'):
if task_complexity == 'simple':
model = 'gpt-3.5-turbo' # 便宜
else:
model = 'gpt-4' # 贵但强大
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": text}],
max_tokens=500 # 限制输出长度
)
return response.choices[0].message.content2. 错误处理
python
import time
def safe_api_call(prompt, max_retries=3):
for i in range(max_retries):
try:
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
print(f"尝试 {i+1} 失败: {e}")
time.sleep(2 ** i)
return None3. 批量处理
python
import time
def batch_process(texts, process_func, delay=1):
"""批量处理文本(控制速率)"""
results = []
for i, text in enumerate(texts):
print(f"处理 {i+1}/{len(texts)}")
result = process_func(text)
results.append(result)
time.sleep(delay) # 避免超限
return results社科研究应用
应用 1:访谈数据编码
python
def code_interview(text, codebook):
"""根据编码手册对访谈进行编码"""
prompt = f"""
编码手册:{codebook}
访谈内容:{text}
请根据编码手册对这段访谈进行编码,返回适用的代码。
"""
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content应用 2:文献摘要生成
python
def summarize_paper(abstract):
"""生成论文摘要"""
prompt = f"""
请用3句话总结以下论文摘要,包括:
1. 研究问题
2. 主要方法
3. 核心发现
摘要:{abstract}
"""
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content练习题
python
# 尝试使用 LLM API 完成:
# 1. 对 50 条推文进行情感分析
# 2. 从新闻标题中提取关键信息
# 3. 生成问卷题目建议Module 10 完成!
恭喜!你已掌握:
- Scikit-learn 机器学习
- PyTorch/TensorFlow 深度学习基础
- LLM API 实用调用
最后一个模块:Module 11 最佳实践
冲刺!