Python调用ChatGPT API:10个实用代码示例

Category: Technical ExchangePublished:建议阅读时长:41 分钟
Author: sodope llm

前置准备:

pip install openai python-dotenv

客户端初始化(本文所有示例通用):

from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.jiekou.ai/v1" # 国内用户使用jiekou.ai直连
)

示例1:智能问答机器人

最基础但最实用的场景:

from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.jiekou.ai/v1"
)
def ask_gpt(question: str, system_prompt: str = "你是一个有帮助的助手") -> str:
"""简单封装的问答函数"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": question}
],
temperature=0.7
)
return response.choices[0].message.content
# 使用示例
print(ask_gpt("Python中的*args和**kwargs有什么区别?"))
print(ask_gpt("用一句话解释量子纠缠"))
print(ask_gpt("今晚吃什么好?", "你是一个美食推荐专家"))

示例2:文本摘要生成器

处理长文本,自动提取关键信息:

def summarize(text: str, max_words: int = 200) -> str:
"""
对长文本进行摘要
:param text: 原始文本
:param max_words: 摘要最大字数
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"你是一个文本摘要专家。请将用户提供的文本压缩为不超过{max_words}字的摘要,保留核心信息。"
},
{
"role": "user",
"content": text
}
],
temperature=0.3 # 摘要任务用较低temperature,确保准确性
)
return response.choices[0].message.content
# 使用示例
long_text = """
人工智能(AI)是计算机科学的一个分支,致力于创建能够执行通常需要人类智能才能完成的任务的系统。
这些任务包括视觉感知、语音识别、决策制定和语言翻译等。AI技术可分为两大类:
窄人工智能(ANI),专注于单一特定任务;通用人工智能(AGI),能够像人类一样理解和学习任何智力任务。
目前,我们主要使用的是窄AI系统,例如推荐算法、自动驾驶、语音助手等...
"""
print(summarize(long_text, max_words=50))

示例3:代码审查助手

帮你分析代码问题和优化建议:

def code_review(code: str, language: str = "Python") -> str:
"""
对代码进行审查
:param code: 待审查的代码
:param language: 编程语言
"""
prompt = f"""请对以下{language}代码进行审查,从以下角度分析:
1. 代码正确性(是否存在Bug)
2. 性能问题
3. 代码风格和可读性
4. 安全性问题
5. 改进建议
代码:
```{language.lower()}
{code}
```"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是一位资深软件工程师,擅长代码审查。"},
{"role": "user", "content": prompt}
],
temperature=0.2
)
return response.choices[0].message.content
# 使用示例
bad_code = """
def get_user(id):
sql = "SELECT * FROM users WHERE id = " + id # SQL注入漏洞!
return db.execute(sql)
def process_list(lst):
result = []
for i in range(len(lst)): # 不够Pythonic
result.append(lst[i] * 2)
return result
"""
print(code_review(bad_code))

示例4:多语言翻译器

支持任意语言间的互译:

def translate(text: str, target_language: str = "英文", source_language: str = "自动检测") -> str:
"""
翻译文本
:param text: 要翻译的文本
:param target_language: 目标语言
:param source_language: 源语言(默认自动检测)
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"你是专业翻译。将用户提供的{source_language}文本翻译成{target_language},只输出翻译结果,不要解释。"
},
{"role": "user", "content": text}
],
temperature=0.1 # 翻译需要精确,用极低temperature
)
return response.choices[0].message.content
# 使用示例
print(translate("人工智能正在改变世界", "英文"))
print(translate("Artificial Intelligence is changing the world", "中文"))
print(translate("AI wa sekai wo kaete iru", "中文")) # 日文
print(translate("Hello, how are you?", "法语"))

示例5:结构化数据提取

从非结构化文本中提取JSON格式数据:

import json
def extract_info(text: str, schema_description: str) -> dict:
"""
从文本中提取结构化信息
:param text: 原始文本
:param schema_description: 描述要提取的字段
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"从用户提供的文本中提取以下信息,以JSON格式返回,只输出JSON不要其他内容:{schema_description}"
},
{"role": "user", "content": text}
],
temperature=0, # 结构化提取用temperature=0确保稳定性
response_format={"type": "json_object"} # 强制JSON输出
)
return json.loads(response.choices[0].message.content)
# 使用示例
resume_text = """
张三,男,28岁,本科学历,计算机科学专业。
工作经验:5年Python开发经验,曾就职于阿里巴巴(2019-2022),
现在字节跳动担任高级工程师。技能:Python, Java, MySQL, Redis。
联系方式:zhangsan@email.com,手机:13812345678
"""
result = extract_info(
resume_text,
"姓名、年龄、学历、工作年限、当前公司、当前职位、技能列表(数组)、邮箱"
)
print(json.dumps(result, ensure_ascii=False, indent=2))

示例6:批量文本分类

对大量文本进行自动分类:

from typing import List
def classify_texts(texts: List[str], categories: List[str]) -> List[str]:
"""
批量文本分类
:param texts: 文本列表
:param categories: 可选分类
"""
categories_str = "、".join(categories)
# 批量处理以减少API调用次数
batch_text = "\n".join([f"{i+1}. {text}" for i, text in enumerate(texts)])
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": f"将用户提供的文本分别分类为以下类别之一:{categories_str}。按序号顺序输出分类结果,每行一个,只输出类别名称。"
},
{"role": "user", "content": batch_text}
],
temperature=0
)
results = response.choices[0].message.content.strip().split("\n")
return [r.strip() for r in results]
# 使用示例
texts = [
"今天股市大涨,上证指数上涨2.3%",
"新研究发现新冠病毒的新变种",
"皇马3-1战胜巴塞罗那,登顶西甲榜首",
"iPhone 17发布,搭载全新A19芯片",
"央行决定降准0.5个百分点"
]
categories = ["财经", "科技", "体育", "健康", "政治"]
results = classify_texts(texts, categories)
for text, category in zip(texts, results):
print(f"[{category}] {text[:20]}...")

示例7:AI写作助手

生成各类内容文本:

def generate_content(content_type: str, topic: str, **kwargs) -> str:
"""
生成各类内容
:param content_type: 内容类型(文章/邮件/广告文案/社交媒体等)
:param topic: 主题
:param kwargs: 额外参数(如字数、风格、受众等)
"""
options_str = ",".join([f"{k}:{v}" for k, v in kwargs.items()])
requirements = f"额外要求:{options_str}" if options_str else ""
prompt = f"请为我生成一篇{content_type},主题是:{topic}。{requirements}"
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{"role": "system", "content": "你是专业的内容创作者。"},
{"role": "user", "content": prompt}
],
temperature=0.8
)
return response.choices[0].message.content
# 使用示例
# 生成产品描述
print(generate_content(
"电商产品描述",
"无线蓝牙耳机",
字数="100字以内",
风格="简洁有力",
亮点="降噪、续航30小时"
))
# 生成工作邮件
print(generate_content(
"正式商务邮件",
"申请延期提交报告",
语气="礼貌诚恳",
延期原因="数据收集遇到困难"
))

示例8:文档问答系统

基于给定文档回答问题:

def document_qa(document: str, question: str) -> str:
"""
基于文档的问答
:param document: 参考文档内容
:param question: 用户问题
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "你是一个文档助手。只根据提供的文档内容回答问题,如果文档中没有相关信息,请说明。不要编造信息。"
},
{
"role": "user",
"content": f"文档内容:\n{document}\n\n问题:{question}"
}
],
temperature=0.1
)
return response.choices[0].message.content
# 使用示例
policy_doc = """
公司差旅报销政策(2026版):
1. 机票:经济舱全额报销,商务舱需部门总监审批
2. 酒店:一线城市标准500元/晚,二线城市300元/晚
3. 餐饮:出差期间每日餐补100元,凭发票报销
4. 交通:打车费用全额报销,需提供发票
5. 报销期限:出差结束后30天内提交
"""
print(document_qa(policy_doc, "出差住酒店的报销标准是多少?"))
print(document_qa(policy_doc, "商务舱机票可以报销吗?"))
print(document_qa(policy_doc, "报销期限是多长时间?"))

示例9:对话式数据分析

用自然语言分析数据:

import json
def analyze_data(data: dict, question: str) -> str:
"""
用自然语言分析JSON数据
:param data: 要分析的数据(字典或列表)
:param question: 分析问题
"""
data_str = json.dumps(data, ensure_ascii=False, indent=2)
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": "你是数据分析专家,擅长从数据中发现洞察。请根据用户提供的数据回答问题,给出具体数字和分析结论。"
},
{
"role": "user",
"content": f"数据:\n{data_str}\n\n问题:{question}"
}
],
temperature=0.2
)
return response.choices[0].message.content
# 使用示例
sales_data = {
"2026年Q1销售数据": {
"1月": {"销售额": 1250000, "订单数": 3200, "退货率": "2.1%"},
"2月": {"销售额": 980000, "订单数": 2800, "退货率": "1.8%"},
"3月": {"销售额": 1560000, "订单数": 4100, "退货率": "2.5%"}
}
}
print(analyze_data(sales_data, "哪个月销售表现最好?整体趋势如何?"))
print(analyze_data(sales_data, "退货率是否有问题?有什么改进建议?"))

示例10:内容审核系统

自动检测文本是否包含违规内容:

import json
def content_moderation(text: str) -> dict:
"""
内容审核:检测文本是否合规
:param text: 待审核文本
:return: 审核结果字典
"""
response = client.chat.completions.create(
model="gpt-4o",
messages=[
{
"role": "system",
"content": """你是内容审核专家。分析用户提供的文本,检测是否包含以下问题:
1. 色情内容
2. 暴力内容
3. 违法信息
4. 仇恨言论
5. 欺诈信息
以JSON格式返回结果,包含:
- is_safe: 是否安全(布尔值)
- categories: 触发的违规类别列表
- confidence: 置信度(0-1)
- reason: 简短说明"""
},
{"role": "user", "content": text}
],
temperature=0,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
# 使用示例
texts_to_check = [
"今天天气真好,适合出去玩",
"这款产品质量很差,强烈投诉",
"大促销,买一送一,限时优惠"
]
for text in texts_to_check:
result = content_moderation(text)
status = "✅ 安全" if result["is_safe"] else "❌ 违规"
print(f"{status}: {text[:20]}...")
if not result["is_safe"]:
print(f" 原因: {result.get('reason', '未知')}")

jiekou.ai:让API调用更简单

以上所有示例都基于 base_url="https://api.jiekou.ai/v1",这是国内开发者调用ChatGPT API的最佳选择.

为什么选jiekou.ai?

  • 🚀 国内直连:无需翻墙,稳定流畅
  • 💻 零代码改动:与官方API 100%兼容
  • 💰 按量计费:用多少付多少,无月租
  • 🤖 多模型支持:一个Key同时用GPT/Claude/Gemini

访问 jiekou.ai 注册,复制这些示例代码,10分钟内运行你的第一个AI应用!


Summary

本文提供了10个可直接使用的Python+ChatGPT API代码示例:

Example核心功能典型用途
1. 智能问答基础调用客服机器人
2. 文本摘要内容压缩新闻摘要
3. 代码审查代码分析开发辅助
4. 翻译器多语言国际化
5. 数据提取JSON输出信息抽取
6. 文本分类批量处理内容管理
7. 写作助手内容生成营销文案
8. 文档问答RAG基础知识库
9. 数据分析数据洞察报表分析
10. 内容审核安全过滤平台治理

把这些示例作为起点,根据自己的业务需求进行扩展,就能快速构建出实用的AI应用。

Share:
Contact Us