当前位置: 代码网 > it编程>前端脚本>Python > Python调用国内常用AI API的3大实战案例详解

Python调用国内常用AI API的3大实战案例详解

2026年08月04日 Python 我要评论
前言deepseek、通义千问……这些ai工具你可能用过,但你有没有想过:让ai成为你的编程助手,帮你自动化处理工作?今天这篇文章,教你用 python 调用 ai api

前言

deepseek、通义千问……这些ai工具你可能用过,但你有没有想过:

让ai成为你的编程助手,帮你自动化处理工作?

今天这篇文章,教你用 python 调用 ai api,把 ai 接入你自己的脚本和工作流。不需要深度学习基础,不需要训练模型——只需要几行代码,就能让 ai 帮你干活。

我们用 3个真实场景 贯穿全文,看完就能上手。

一、准备工作

1.1 什么是 ai api?

ai api 就是 ai 模型的「程序接口」。

你可以理解为:你发一段文字给它,它回复一段文字。这个交互过程完全可以用代码自动化。

你 → 发送指令 → ai模型 → 返回结果 → 你

1.2 获取 api key

国内最推荐用的是 硅基流动(siliconflow)  的 api 平台:

优点:

  • 国内直连,无需科学上网
  • 价格便宜(deepseek 模型免费额度大)
  • 接口格式与 openai 完全兼容

注册步骤:

  1. 打开 siliconflow.cn
  2. 注册账号并登录
  3. 进入「api密钥」页面
  4. 点击「新建密钥」,复制生成的 key(格式类似 sk-xxxxxxxx

提示:api key 等同于你的账号密码,不要提交到代码仓库或公开分享,建议使用环境变量存储。

1.3 安装依赖

pip install openai pandas python-dotenv

1.4 配置 api key

创建一个 .env 文件,存放你的密钥:

# .env 文件内容
api_key=sk-xxxxxxxxxxxxxxxxxxxxxxxx

在 python 代码中这样加载:

import os
from dotenv import load_dotenv
# 加载 .env 文件中的环境变量
load_dotenv()
api_key = os.getenv("api_key")
print("api key 加载成功!" if api_key else "请检查 .env 文件")

二、实战一:用 ai 自动总结文章

2.1 场景描述

你有一堆文章、报告、文档需要快速看完关键信息。手动阅读耗时太长,但只要知道核心要点就够了。

让 ai 帮你总结!

2.2 核心代码

from openai import openai
import os
from dotenv import load_dotenv

load_dotenv()

# 初始化客户端(兼容 openai 格式的接口)
client = openai(
    api_key=os.getenv("api_key"),
    base_url="https://api.siliconflow.cn/v1"  # 硅基流动的接口地址
)


def summarize_text(text, model="deepseek-ai/deepseek-v2.5"):
    """
    用 ai 总结长文本

    参数:
        text: 要总结的原始文本
        model: 使用的模型
    返回:
        ai 生成的总结
    """

    prompt = f"""请帮我总结以下文章的核心内容,要求:
1. 提取 3-5 个关键要点
2. 每个要点用一句话概括
3. 最后给出一个简短的总结(50字以内)

文章内容:
{text}
"""

    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.3,  # 温度低一些,结果更稳定
        max_tokens=500    # 限制输出长度
    )

    return response.choices[0].message.content


# 使用示例
if __name__ == "__main__":
    article = """
    2024年是ai大模型爆发的一年。从chatgpt到claude,从gpt-4到deepseek,
    大模型技术以惊人的速度渗透到各行各业。

    在编程领域,ai辅助编程工具如cursor、github copilot正在改变开发者的工作方式。
    调查数据显示,使用ai辅助编程的开发者,平均编码效率提升了40%以上。

    展望2025年,ai agent(ai代理)成为新的技术热点。
    与简单的问答不同,ai agent能够自主规划任务、调用工具、反思结果,
    初步具备了"自动化执行"的能力。
    """

    summary = summarize_text(article)
    print("=== 文章总结 ===")
    print(summary)

2.3 进阶:批量总结多篇文章

def batch_summarize(articles, delay=1):
    """
    批量总结多篇文章

    参数:
        articles: 文章列表,每项为 {"title": "标题", "content": "内容"}
        delay: 每次请求间隔(秒),避免请求过快
    """
    results = []

    for i, article in enumerate(articles):
        print(f"正在处理第 {i+1}/{len(articles)} 篇: {article['title']}")

        try:
            summary = summarize_text(article['content'])
            results.append({
                "标题": article['title'],
                "总结": summary,
                "状态": "成功"
            })
        except exception as e:
            results.append({
                "标题": article['title'],
                "总结": "",
                "状态": f"失败: {e}"
            })

        # 控制请求频率
        if i < len(articles) - 1:
            import time
            time.sleep(delay)

    return results


# 使用示例
if __name__ == "__main__":
    articles = [
        {
            "title": "ai编程工具评测",
            "content": "本文深入评测了当前主流的ai编程工具..."
        },
        {
            "title": "python异步编程详解",
            "content": "python的asyncio模块为异步编程提供了强大支持..."
        },
        {
            "title": "数据可视化最佳实践",
            "content": "好的数据可视化能让复杂数据一目了然..."
        }
    ]

    results = batch_summarize(articles)

    # 保存结果
    import pandas as pd
    df = pd.dataframe(results)
    df.to_excel("文章总结报告.xlsx", index=false)
    print("\n批量总结完成,结果已保存到 文章总结报告.xlsx")

三、实战二:用 ai 自动生成周报

3.1 场景描述

每周都要写周报,但工作内容零零散散,整理起来很费时间。

现在你可以这样:

  1. 把一周的工作记录随手写下来(不用整理)
  2. 丢给 ai,让它帮你自动生成结构化周报

3.2 核心代码

def generate_weekly_report(raw_notes, model="deepseek-ai/deepseek-v2.5"):
    """
    用 ai 根据原始工作记录生成周报

    参数:
        raw_notes: 原始工作记录(可以是凌乱的文字)
        model: 使用的模型
    返回:
        格式化后的周报
    """

    prompt = f"""你是一个专业的周报助手。请根据以下工作记录,帮我生成一份结构化的周报。

要求格式如下:
## 本周工作总结
(用列表形式,清晰列出完成的工作)

## 关键成果
(用列表形式,列出最重要的 2-3 项成果)

## 遇到的问题
(如果有的话)

## 下周计划
(根据本周工作,合理推测下周计划)

## 本周心得
(一句简短的反思或总结)

---
原始工作记录:
{raw_notes}
"""

    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.5,
        max_tokens=1000
    )

    return response.choices[0].message.content


# 使用示例
if __name__ == "__main__":
    # 随便写的工作记录,不需要整理
    raw = """
    周一:开了个项目评审会,讨论了下个版本的需求
    周二:写了两个接口,调试了半天发现有个bug
    周三:修复了周二的bug,测试通过了
    周四:和产品经理对了需求,改了一个小细节
    周五:写了点文档,review了同事的代码

    另外周二那天还顺便帮同事看了一个线上问题
    """

    report = generate_weekly_report(raw)
    print("=== 本周周报 ===")
    print(report)

3.3 运行效果

输入原始记录后,ai 会自动生成这样格式化的周报:

=== 本周周报 ===
## 本周工作总结
- 参与项目评审会议,讨论下版本需求
- 完成两个接口的开发工作
- 定位并修复了接口 bug,测试全部通过
- 与产品经理确认需求变更并完成调整
- 完成技术文档编写,完成同事代码 review
## 关键成果
- 🔧 解决了接口 bug,保证版本按时提测
- 📝 完成了新功能的接口文档
## 遇到的问题
- 接口联调时发现数据格式不统一,经过排查修复
## 下周计划
- 继续跟进需求变更
- 准备下版本开发工作
## 本周心得
- 做好接口自测可以大大减少联调时间

3.4 进阶:结合钉钉/飞书自动发送

如果想让周报写完自动发到工作群,可以这样扩展:

import requests

def send_to_dingtalk(webhook_url, content):
    """发送消息到钉钉群(需要机器人 webhook)"""

    data = {
        "msgtype": "text",
        "text": {
            "content": f"📊 本周周报\n\n{content}"
        }
    }

    response = requests.post(webhook_url, json=data)
    return response.json()


# 使用示例
# 1. 在钉钉群设置 -> 智能群助手 -> 添加机器人
# 2. 选择「自定义」机器人,复制 webhook 地址
# 3. 将地址填入下方
webhook_url = "https://oapi.dingtalk.com/robot/send?access_token=xxx"

report = generate_weekly_report(raw)
result = send_to_dingtalk(webhook_url, report)
print("发送成功!" if result.get("errcode") == 0 else f"发送失败: {result}")

四、实战三:用 ai 智能分类整理数据

4.1 场景描述

你有一份 excel 表格,里面有大量的客户反馈、商品描述、或者任务描述,需要人工去分类、打标签。

有了 ai,只需要几行代码,就能自动完成!

4.2 核心代码

import pandas as pd
from openai import openai
import os
from dotenv import load_dotenv
import time

load_dotenv()

client = openai(
    api_key=os.getenv("api_key"),
    base_url="https://api.siliconflow.cn/v1"
)


def classify_text(text, categories, model="deepseek-ai/deepseek-v2.5"):
    """
    用 ai 对文本进行分类

    参数:
        text: 要分类的文本
        categories: 可选的分类列表
        model: 使用的模型
    返回:
        分类结果
    """

    prompt = f"""请将以下文本分类到给定类别中。

可选类别:{', '.join(categories)}

要求:
1. 只选择一个最合适的类别
2. 如果文本太短无法判断,返回「无法分类」
3. 直接输出类别名称,不要解释

文本:
{text}
"""

    response = client.chat.completions.create(
        model=model,
        messages=[
            {"role": "user", "content": prompt}
        ],
        temperature=0.1,  # 温度低,分类结果更一致
        max_tokens=50
    )

    return response.choices[0].message.content.strip()


def batch_classify_data(input_file, text_column, categories, output_file=none):
    """
    批量分类 excel 中的文本数据

    参数:
        input_file: 输入 excel 文件路径
        text_column: 要分类的文本列名
        categories: 分类列表
        output_file: 输出文件路径(默认覆盖原文件)
    """

    # 读取 excel
    df = pd.read_excel(input_file)
    print(f"读取文件,共 {len(df)} 条数据")

    # 添加分类列
    df['ai分类'] = ''
    df['分类时间'] = ''

    for i, row in df.iterrows():
        text = str(row[text_column])

        try:
            category = classify_text(text, categories)
            df.at[i, 'ai分类'] = category
            print(f"[{i+1}/{len(df)}] ✅ {category}: {text[:20]}...")

        except exception as e:
            df.at[i, 'ai分类'] = f"分类失败: {e}"
            print(f"[{i+1}/{len(df)}] ❌ 失败: {e}")

        # 添加延迟,避免请求过快
        if i < len(df) - 1:
            time.sleep(0.8)

    # 保存结果
    if output_file is none:
        output_file = input_file

    df.to_excel(output_file, index=false)
    print(f"\n分类完成!结果已保存到: {output_file}")

    return df


# 使用示例
if __name__ == "__main__":
    # 定义分类类别
    categories = ["功能咨询", "bug反馈", "投诉建议", "商务合作", "无效信息"]

    # 对 excel 中的「用户反馈」列进行分类
    batch_classify_data(
        input_file="客户反馈表.xlsx",
        text_column="用户反馈",
        categories=categories,
        output_file="客户反馈表_已分类.xlsx"
    )

4.3 更多扩展场景

同样的逻辑,可以扩展到:

场景输入输出
邮件分类邮件正文自动归类到工作/垃圾/重要
商品打标商品描述自动打上品类/风格标签
工单分配工单内容自动分配到对应部门
内容审核用户评论自动标记违规/正常

五、一个更通用的 ai 调用封装

为了方便以后复用,我封装了一个更通用的函数:

class aitool:
    """ai 工具封装类"""

    def __init__(self, api_key, base_url="https://api.siliconflow.cn/v1"):
        self.client = openai(api_key=api_key, base_url=base_url)

    def ask(self, question, context="", model="deepseek-ai/deepseek-v2.5", temperature=0.7):
        """
        向 ai 提问

        参数:
            question: 你的问题
            context: 背景上下文(可选)
            model: 模型
            temperature: 创造性程度(0-1,越高越有创意)
        返回:
            ai 的回答
        """
        if context:
            prompt = f"背景信息:\n{context}\n\n问题:\n{question}"
        else:
            prompt = question

        response = self.client.chat.completions.create(
            model=model,
            messages=[{"role": "user", "content": prompt}],
            temperature=temperature
        )

        return response.choices[0].message.content

    def summarize(self, text, points=3):
        """总结文本,points 指定要点数量"""
        prompt = f"请总结以下内容的核心要点({points}个):\n\n{text}"
        return self.ask(prompt, temperature=0.3)

    def translate(self, text, target_lang="中文"):
        """翻译文本"""
        prompt = f"请将以下内容翻译成{target_lang}:\n\n{text}"
        return self.ask(prompt, temperature=0.3)

    def classify(self, text, categories):
        """文本分类"""
        prompt = f"将以下文本分类到 {', '.join(categories)} 中,直接输出类别:\n\n{text}"
        return self.ask(prompt, temperature=0.1)


# 使用示例
if __name__ == "__main__":
    ai = aitool(api_key=os.getenv("api_key"))

    # 总结
    summary = ai.summarize("你的长文本...", points=3)
    print(summary)

    # 翻译
    translation = ai.translate("hello world!", target_lang="中文")
    print(translation)

    # 分类
    category = ai.classify("这个功能怎么用?", ["咨询", "bug", "其他"])
    print(category)

六、注意事项与最佳实践

6.1 费用控制

  • deepseek 模型性价比极高,大部分场景免费额度够用
  • 设置 max_tokens 限制单次输出,避免浪费
  • 批量处理时加延迟,既保护账号也减少费用

6.2 错误处理

ai api 调用可能失败(网络问题、限流等),务必加异常处理:

from tenacity import retry, stop_after_attempt, wait_exponential

@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=2, max=10))
def call_with_retry(client, messages):
    """带重试的 api 调用"""
    return client.chat.completions.create(
        model="deepseek-ai/deepseek-v2.5",
        messages=messages
    )

安装:pip install tenacity

6.3 隐私安全

  • api key 用 .env 文件管理,不要硬编码
  • 不要把用户隐私数据发给不可信的 api
  • 涉及敏感信息时,优先使用国内合规平台(如硅基流动、百度智能云等)

6.4 提示词技巧

技巧示例
指定角色“你是一个资深产品经理”
指定格式“用表格形式输出”
给出例子“例如:…”, “输出格式如下:…”
控制长度“用一句话概括” / “详细说明(200字以内)”

七、总结

今天我们学了:

  1. 环境准备 — 注册 api、安装依赖、配置密钥
  2. ai 总结文章 — 批量处理长文本,一键提取关键信息
  3. ai 生成周报 — 把凌乱的工作记录变成结构化周报
  4. ai 分类数据 — 用 excel + ai 自动打标签、分门别类
  5. 通用封装 — 一个类搞定所有常用 ai 操作

核心思路就一句话:把「你想让ai做的事」用自然语言描述清楚,然后调api发给ai,让它帮你执行。

以上就是python调用国内常用ai api的3大实战案例详解的详细内容,更多关于python调用ai api的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com