news 2026/6/25 19:47:04

【第三十三周】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/6/20 18:18:03

    ScalingLaws-2022-Chinchilla-2:既然Dₒₚₜ/Nₒₚₜ≈20,为什么LLaMA系列用的D/N远大于20【Chinchilla比例:每个参数大约对应20个token】

    “每个参数大约对应 20 个 token”(常被叫作 Chinchilla 比例)并不是一条“宇宙定律”。 你看到 LLaMA 系列的 token/参数 比值远大于 20,核心原因是:他们优化的目标、约束条件、以及用来拟合的“最优前沿(frontier)”都变了。 尤其从 Llama 3 开始,论文里甚至明确承认…

    作者头像 李华
    网站建设 2026/6/25 11:04:38

    HTTP Content-Type

    HTTP Content-Type 引言 HTTP协议中的Content-Type头字段是Web服务器与客户端之间进行数据交换的重要机制。它定义了服务器发送给客户端数据的类型,允许浏览器或其他客户端应用程序正确地处理和展示这些数据。本文将详细介绍HTTP Content-Type的用途、类型以及在实际应用中的…

    作者头像 李华
    网站建设 2026/6/20 18:16:07

    VSCode 下如何检查 Vue 项目中未使用的依赖?

    VSCode 下如何检查 Vue 项目中未使用的依赖? 文章目录 VSCode 下如何检查 Vue 项目中未使用的依赖?1. 使用 depcheck 工具(推荐)安装和使用:配置(可选): 2. 使用 npm-check 工具3. V…

    作者头像 李华
    网站建设 2026/6/21 20:13:29

    SSM计算机毕设之基于ssm的网上手机商城系统基于SSM的手机商城(完整前后端代码+说明文档+LW,调试定制等)

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

    作者头像 李华
    网站建设 2026/6/22 8:17:44

    开题报告 雅韵古诗词系统python爬虫

    目录 雅韵古诗词系统Python爬虫简介爬虫技术实现要点数据处理与存储反爬策略应对应用场景扩展 项目技术支持可定制开发之功能亮点源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作 雅韵古诗词系统Python爬虫简介 雅韵古诗词系统是一个基于Py…

    作者头像 李华
    网站建设 2026/6/22 9:42:38

    SSM计算机毕设之基于SSM的疫情健康上报管理系统行程上报、健康上报(完整前后端代码+说明文档+LW,调试定制等)

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

    作者头像 李华