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()
相关推荐
hsg771 小时前
简述:Rust、GeoRust、自主研发GIS平台
开发语言·后端·rust
承渊政道1 小时前
飞算Java炫技赛:Java×Unity数字孪生园区平台的从零落地记录
java·开发语言·unity·技术分享·vibe coding·飞算javaai·飞算java ai炫技赛
wdfk_prog7 小时前
嵌入式面试真题第 10 题:高优化等级下共享状态可见性、内存模型与系统级同步设计
java·linux·开发语言·面试·职场和发展·架构·c
闻道且行之10 小时前
TurboOCR:基于PP-OCRv6的极速Windows离线OCR工具,深度解析3.4GB依赖背后的技术架构
c++·人工智能·python·qt·机器学习·ocr
许彰午11 小时前
95_Python内存管理与垃圾回收
开发语言·python
多加点辣也没关系11 小时前
JavaScript|第13章:原始类型的方法
开发语言·javascript·ecmascript
এ慕ོ冬℘゜11 小时前
深入理解 JavaScript 事件体系:Window、鼠标与键盘事件详解
开发语言·javascript·okhttp
骄阳如火11 小时前
Python 性能深度剖析:从“被诟病的慢”到“Rust 重塑”的拐点
python
满怀冰雪12 小时前
03-第一个 Paddle 程序:Tensor 创建、计算与设备管理
人工智能·python·paddle
CClaris12 小时前
大模型量化从0到1(九):用 llama.cpp 把模型转成 GGUF 并跑本地推理
人工智能·pytorch·python·深度学习·llama