9.复盘API全套流程

一、API 全套流程总览(必须背下来)

  1. 导入库
    import requests
  2. 配置密钥
    从config导入 API Key、接口地址
  3. 构建请求头
    放Authorization鉴权信息
  4. 构建消息列表
    历史消息 + 当前问题拼接
  5. 发送请求
    requests.post()
  6. 解析返回结果
    从 JSON 里取出 AI 回答
  7. 异常处理 + 重试
    保证程序稳定
  8. 更新对话历史
    实现多轮对话
python 复制代码
# -*- coding: utf-8 -*-
"""
@Created on : 2026/6/2 9:49
@creator : er_nao
@File :day78_api_full_review.py
@Description :复盘API全套流程
"""
# 1. 导入依赖库
import requests
import time
from config import TONGYI_API_KEY, TONGYI_API_URL


# ===================== 流程1:历史消息拼接 =====================
def concat_history(history, new_question):
    msg_list = history.copy()
    msg_list.append({"role": "user", "content": new_question})
    return msg_list


# ===================== 流程2:发送API请求(含重试) =====================
def ai_response(messages, temperature=0.7, max_retry=3):
    # 请求头
    headers = {
        "Authorization": f"Bearer {TONGYI_API_KEY}",
        "Content-Type": "application/json"
    }

    # 请求体
    data = {
        "model": "qwen-plus",
        "input": {"messages": messages},
        "temperature": temperature
    }

    # 重试机制
    for retry in range(max_retry):
        try:
            response = requests.post(
                TONGYI_API_URL,
                headers=headers,
                json=data
            )
            result = response.json()
            return result["output"]["text"]

        except Exception as e:
            print(f"第{retry + 1}次失败,重试中...")
            time.sleep(1)

    return "API调用失败"


# ===================== 流程3:更新对话历史 =====================
def update_history(history, user_text, ai_text):
    history.append({"role": "user", "content": user_text})
    history.append({"role": "assistant", "content": ai_text})
    return history


# ===================== 流程4:完整对话流程 =====================
def full_api_chat():
    history = []
    print("===== API全套流程复盘(输入 退出 结束)=====")

    while True:
        user_input = input("你:")
        if user_input == "退出":
            print("AI:再见!")
            break

        # 1. 拼接历史
        send_msg = concat_history(history, user_input)
        # 2. 调用API
        ai_reply = ai_response(send_msg)
        # 3. 输出结果
        print("AI:", ai_reply)
        # 4. 更新历史
        history = update_history(history, user_input, ai_reply)


# 运行全套API流程
if __name__ == "__main__":
    full_api_chat()
相关推荐
科技苑7 小时前
Python简单网络爬虫教程
爬虫·python
Patrick在香港10 小时前
Claude Prompt 香港场景:公文里「今日」落在 6 个日历日上,「翌日」锚错了 5 天
python·自然语言处理·正则表达式·claude·数据清洗
YsyaaabB10 小时前
Python 数值分析
python
阿洛学长10 小时前
计算机二级 Python 基本操作题(15 分)真题笔记(0101 ~ 1903 全套)
python·pycharm
君顾111 小时前
上海24小时自助健身房系统开发实战指南:从架构设计到落地部署
java·开发语言·健身房
weixin1997010801611 小时前
[特殊字符]️《二手ERP对接电商平台的总体方案:统一数据模型 + 事件驱动 + 灰度上线6原则》(附Python源码)
大数据·python
香菜TTT11 小时前
大模型上下文协议(MCP):AI 应用的“USB-C”接口技术
开发语言·人工智能·经验分享
aramae11 小时前
模拟实现strlen()函数 (C语言)
c语言·开发语言·后端
滚雪球~11 小时前
量化交易 防止Windows电脑自动更新并重启
python·量化
jimy112 小时前
readelf 查看“派生类”的vtable符号
开发语言·c++