news 2026/4/17 18:13:19

【第三十三周】PageIndex项目的调试

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【第三十三周】PageIndex项目的调试

文章目录

  • 摘要
  • Abstract
  • 一、相关知识补充
    • 1. 模型的调用
      • 1.1 方法一:开源模型
      • 1.2 方法二:API访问
    • 2. 阿里通义千问
  • 二、项目调试记录
    • 1. 思路
      • 1.1 修改utils.py文件
      • 1.2 测试api key是否真正传入
  • 总结

摘要

本周还是在复现项目,对复现过程中产生的问题以及解决问题的思路进行记录。


Abstract

This week, I continued reproducing the project, and documented the problems encountered during the reproduction process as well as the ideas for solving them.


一、相关知识补充

由于项目需要通过充值配额才能使用OpenAI API,根据官网充值方式知需要国外银行卡,因此打算更换项目使用的模型。经过查阅资料打算换成阿里通义千问API。

1. 模型的调用

1.1 方法一:开源模型

流程:模型仓库下载权重文件 —> 准备推理引擎与环境 —> 自主部署与运行
补充:
1,权重文件 确实就是模型训练完成后保存下来的、所有参数的集合。

2,准备推理引擎与环境:本质上就是为模型搭建一个能够理解它、高效执行它并对外提供服务的“大脑运行环境”和“交互界面”。

注: 首先需要基本运行环境(python ,依赖库,GPU驱动...), 接着需要深度学习框架(pytorch...)和专用推理引擎(vLLM、TensorRT-LLM、CTranslate2),其中深度学习框架能读懂权重文件格式,推理引擎实现对框架优化, 最后服务封装,实现可以通过api调用

3,本地部署的模型必须下载,下载内容具体包括:模型权重文件;配置文件(config.json);分词器文件(tokenizer.json 或 tokenizer.model)。

4,“OpenAI 兼容的本地部署”指的是一种技术方案:在你自己的服务器或电脑上部署一个开源大语言模型,但让它提供一个与OpenAI官方API格式完全相同的接口。
疑问:什么是“与OpenAI官方API格式完全相同”?
“格式完全相同”指的是你的本地服务模仿了OpenAI API的通信协议、请求结构和响应结构。这样,任何原本为OpenAI API编写的客户端代码,几乎无需修改就能与你的本地服务对话。

1.2 方法二:API访问

流程:外部服务远程调用

2. 阿里通义千问

阿里通义千问提供“原生的OpenAI兼容端点”与“OpenAI兼容的本地部署”最核心的区别在于:模型的“所有权”和“部署地点”不同。

  • 阿里通义千问的兼容端点:是阿里云提供的一项在线API服务。你调用的是阿里云服务器上的通义千问模型,只是接口格式和OpenAI一样。

  • 本地部署的兼容服务:是在你自己的硬件上运行一个开源模型,并自己搭建一个模仿OpenAI接口的服务。

二、项目调试记录

1. 思路

1.1 修改utils.py文件

直接使用模型调用的方法2,修改使用的模型,此时改动最小。

将原本模型"gpt-4o-2024-11-20"映射为"qwen-plus",后续代码中的"gpt-4o-2024-11-20"模型会自动使用"qwen-plus"

# 在utils.py文件顶部添加import osfromdotenv import load_dotenv# 加载环境变量(使用绝对路径)script_dir = os.path.dirname(os.path.abspath(__file__))project_root = os.path.dirname(script_dir)env_path = os.path.join(project_root,'key.env')load_dotenv(env_path)# 然后在API调用函数中使用QWEN_API_KEY = os.getenv("DASHSCOPE_API_KEY")QWEN_BASE_URL = os.getenv("QWEN_BASE_URL","https://dashscope.aliyuncs.com/compatible-mode/v1")# 千问模型映射(替换原OpenAI模型)MODEL_MAPPING ={"gpt-4o-2024-11-20":"qwen-plus",# 千问增强版}
  • 首先创建环境变量文件(.env):写入api key,base url,model name。目的是避免直接在项目中写入私密信息造成一些信息安全问题发生。
    注:对于api key的赋值不可有空格,否则无法正确识别。
DASHSCOPE_API_KEY='你的密钥'#正确DASHSCOPE_API_KEY ='你的密钥'#错误

    1.2 测试api key是否真正传入

    fromdotenv import load_dotenvfromopenai import OpenAI import os# 加载环境变量load_dotenv(dotenv_path='.env文件路径')# 获取API密钥和基础URLapi_key = os.getenv('DASHSCOPE_API_KEY')base_url = os.getenv('QWEN_BASE_URL','https://dashscope.aliyuncs.com/compatible-mode/v1')print(f"API Key: {api_key}")print(f"Base URL: {base_url}")# 初始化OpenAI客户端client = OpenAI(api_key=api_key,base_url=base_url)try:# 发送简单的测试请求response = client.chat.completions.create(model="qwen-plus",messages=[{"role":"user","content":"Hello, test API key"}])print("API Key is valid!")print("Response:",response.choices[0].message.content)except Exception as e: print(f"API Key is invalid: {e}")

    可以正确传入api key后程序还是一直无法跑通,因此需要测试api key是否有效的。对于跑一次完整项目耗时太久,因此用最小案例测试是否可以跑通。


    总结

    项目较大运行一次项目的时间太长,可以灵活点确定工具的可使用性。日后遇到其他的大型项目,对于某一工具能否使用可以通过新建一个文件,编写相关测试连通性,有效性的代码对工具进行测试,无需完整跑一次项目测试工具的可用性。

    版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
    网站建设 2026/4/10 17:26:31

    用Python实现第一个量子机器学习模型完整教程:Qiskit与TensorFlow集成

    ——手把手代码教学与常见问题解决方案 作者:DREAMVFIA UNION 发布日期:2026年2月1日 版权:© 2026 DREAMVFIA UNION -------------------------------------------------- 目录 1. 第一章:引言——为什么学习量子机器学习 2. 第二章:量子计算基础回顾 3. 第三章…

    作者头像 李华
    网站建设 2026/4/16 13:53:42

    U654615 比特聚集(bit)补题报告

    先看题目:题目分析我们有一个长度为 的二进制字符串 ,包含字符 0 和 1,至少有一个 1。 可以交换相邻字符,每次交换算一次操作。 目标:让所有 1 连续排列(形成一段连续的 1)。 求最少操作次数思…

    作者头像 李华
    网站建设 2026/4/12 13:17:46

    AI大模型基于LangChain 进行RAG与Agent智能体开发

    大模型,英文名叫Large Model,大型模型。早期的时候,也叫Foundation Model,基础模型。 大模型是一个简称,完整的叫法,应该是“人工智能预训练大模型”。预训练,是一项技术,我们后面再…

    作者头像 李华
    网站建设 2026/4/9 20:38:02

    开题报告-基于BS的在线电影视频播放系统的设计与实现

    目录 研究背景与意义系统核心功能技术选型创新点设计预期成果应用价值 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 研究背景与意义 在线电影视频播放系统基于B/S架构(Browser/Server&…

    作者头像 李华
    网站建设 2026/4/17 7:36:32

    【课程设计/毕业设计】基于SSM的疫情健康上报管理系统每日体温填报 异常症状上报(咳嗽、发热等) 数据可视化【附源码、数据库、万字文档】

    博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

    作者头像 李华
    网站建设 2026/4/11 19:54:06

    SSM毕设选题推荐:基于SSM的手机商城基于SSM实现手机销售商城系统【附源码、mysql、文档、调试+代码讲解+全bao等】

    博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

    作者头像 李华