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()
相关推荐
郑州光合科技余经理5 小时前
代驾系统架构拆解:订单链路、权限组织与私有化源码交付
开发语言·后端·算法·架构·系统架构·uni-app·php
天才测试猿8 小时前
2026软件测试面试八股文(含答案+文档)
自动化测试·软件测试·python·功能测试·测试工具·面试·职场和发展
码哥DFS8 小时前
二叉树的直径
开发语言·javascript·算法
paopaokaka_luck9 小时前
基于springboot3+vue3的企业考勤管理系统(部门树递归、Echarts图形化分析)
开发语言·spring boot·学习·echarts·mybatis·需求分析·代码规范
张小凡vip9 小时前
python--爬虫--成熟的爬虫框架Scrapy
爬虫·python·scrapy
Pluchon9 小时前
Java个人综合项目——萌部落社区V2.0
java·python·spring·spring cloud·postman·idea
梦雨生生10 小时前
java开发工具(学习第一天)
java·开发语言·学习
不瘦80斤不改名10 小时前
01-vibe-coding-起源与本质
人工智能·python
夜雪一千10 小时前
如何对新闻数据进行模糊去重
python
啊啊啊啊啊!!!!11 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++