当前位置: 首页 > news >正文

【第三十三周】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是否有效的。对于跑一次完整项目耗时太久,因此用最小案例测试是否可以跑通。


    总结

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

    http://www.jsqmd.com/news/330991/

    相关文章:

  • 《羁绊型反派塑造:情感闭环与角色立体度打造指南》
  • AI原生应用开发:如何选择合适的相似度匹配算法?
  • SpringBoot4.0+JDK25+GraalVM:云原生新纪元
  • linux hwspinlock 学习
  • 热身赛 全华班武汉城市 2-0 客胜罗马尼亚六级联赛球队阿斯特拉勒杜卡内尼
  • JavaScript DOM操作实战:从入门到精通
  • 2026年 碳纤维管材厂家推荐榜单:高强度轻量化碳纤维管/碳纤维管材,专业定制与创新应用深度解析
  • 2026年碳纤维板厂家推荐排行榜:高强度轻量化碳纤维板材,航空航天/汽车工业专用定制源头工厂精选
  • ArcGIS Pro开发学习
  • 洛谷 P3383:线性筛素数 ← 埃氏筛
  • 电磁波的反射与透射
  • 2026年 数控小钢炮厂家推荐排行榜:高刚性/高光/4万转/20-30KW大主轴/全自动换刀/龙门结构/粗精加工一体/西门子数控系统,性能强悍之选!
  • 【题解】SS221101C.iiidx
  • Flink Agents 0.1.0 发布公告 - 教程
  • 2026年碳纤维制品厂家推荐榜单:碳纤维羽毛球拍/网球拍/台球杆/自行车车架/无人机/运动器材/医疗器械等高端轻量化产品源头实力解析
  • 汉中串串综合排名榜(2026本地精选)
  • 方寸微PT153s芯片,国产USB转RJ45千兆网口芯片,替代RTL8153b方案
  • 方寸微T153s芯片,国产USB转RJ45千兆网口芯片,替代RTL8153b方案
  • 2026年方管厂家实力推荐榜:友发牌/镀锌/低合金/不锈钢/冷拔无缝等全品类优质品牌深度解析与选购指南
  • 用Python实现第一个量子机器学习模型完整教程:Qiskit与TensorFlow集成
  • 04课程:10、11通过yum安装Nginx~12简单源码安装和yum安装的区别~13通过Nginx源码复杂安装
  • Github源码推荐 | Prometheus:让自主无人机开发更简单、更高效!
  • 2026年 热熔胶厂家推荐排行榜:热熔胶颗粒/热熔胶块/压敏胶/聚烯烃热熔胶/聚酰胺热熔胶/EVA热熔胶/滤清器热熔胶/快递袋热熔胶/包装热熔胶/标签热熔胶,专业粘合解决方案
  • 新域名 oierin.top
  • 实用指南:Ubuntu 虚拟机配置静态 IP
  • 仿真引擎——构建系统跳动的心脏
  • 基于ssm+vue+mysql的爱心商城系统(源码+部署调试+大文档+讲解)
  • 2026年 云南旅行社推荐榜单:诚信地接+包车导游服务,火车站附近接送机一站式解决方案
  • 系统自动触发的登出逻辑*
  • 2026年 台湾物流专线服务商推荐排行榜:台湾专线物流/整柜运输/清关派送/电商物流/小三通物流/大件物流/海运运输,高效稳定跨境解决方案