使用AI用Python写了一个基于向量库的项目路径管理系统,v0.1

科技   2024-11-14 07:31   浙江  

项目来由

随着个人项目的不断增加,管理这些脚本和独立项目变得越来越困难。尤其是当我需要快速找到之前编写的某个项目时,经常会浪费很多时间在搜索和浏览文件夹中。

为了更高效地管理这些项目路径,我决定开发一个本地项目路径管理工具。这个工具可以帮助我添加项目录和项目描述信息,并支持根据项目描述快速搜索,以便在需要时迅速定位和访问相关代码,从而节省时间并提高工作效率。

第一版本基于AI(GPT4)生成,还有很多要完善的,后面会持续迭代,可能的问题:

  • 每次运行都要加载一遍模型,比较耗时
  • 目前数据库是json文件管理,不是很方便
  • 目前向量数据库查找是遍历比较,比较耗时
  • 模型向量匹配查找效果不好 等等,后续会一一优化。

下一个版本应该会分为:

  • server端:使用fastapi 搭建一套服务api,这样服务可以部署到任意地方,而且不用重复加载模型
  • webui端:使用flask+html 搭建一套简单的ui管理页面,方便非开发者使用
  • cli端:就基于现在这套代码,编写一个简单的cli程序,方便开发者在terminal下使用

与AI进行交互

首先把需要内容直接丢给AI(本案例使用的GPT4,后面所有说的AI都表示是GPT4),会发现回复内容不是那么精准,比如我希望是通过向量形式存储检索,但她给的方案是正则解析。

遇到这种明显AI回复和自己想法不一致情况,可以直接终止回复,然后对AI行为进行纠正。

请和我一步步交流对话,我的想法是先写一个terminal工具,我可以在terminal里通过指令添加新的项目路径和功能说明,然后工具会记录到向量数据库里,然后也可以通过工具来模糊查找,从向量数据库里找到最匹配的3条记录显示到terminal里

回复内容要点:明确目标、明确流程、具体场景。

到这一步就拿到了我们想要的功能代码,基本逻辑是使用 sentence-transformers 库加载all-MiniLM-L6-v2模型对文字进行向量化处理,然后存入json文件。

项目实战部署

安装环境,并赋予运行脚本可执行权限,然后创建一个软链接到系统环境变量路径下,比如/usr/local/bin/pv

cd /usr/local
git clone https://github.com/XksA-me/PathVec
conda create -n pv python=3.10
conda activate pv
cd PathVec
pip install -r requirements.txt
chmod +x ./pv.sh
ln -sf ./pv.sh /usr/local/bin/pv

修改代码文件路径:

  • pv.py 中设置 DB_PATH 路径,注意是绝对路径,随便设置一个路径即可,比如"/usr/local/PathVec/db.json"
  • pv.sh 中设置 CODE_PATH 路径,请按自己clone项目所在实际路径填写,比如"/usr/local/PathVec/pv.py"

修改好,即可在terminal 任意位置执行 pv 指令来添加项目文件信息或者查询项目文件信息了。

添加项目路径和项目信息

pv add -p /usr/local/PathVec -m "基于向量数据库的本地项目路径管理系统"

-p 是可选参数,不指定的话默认会获取当前路径作为项目路径,-m是必填参数,含义为项目描述内容,方便日后查找。

第一次运行会下载模型文件。

添加数据。

根据描述查找项目路径

pv search -s "路径管理"

-s是必填参数,模糊查找使用的项目描述。目前查找会按相似度显示最匹配的3条数据。

图书推荐

《大模型应用开发:RAG入门与实战》推荐:

  • 技术深入:深入讲解RAG的三大核心组件——检索器、生成器和排序器,以及如何构建高效的RAG系统。
  • 个性化服务:讲解如何根据用户的查询和历史搜索记录提供个性化搜索服务。
  • PyTorch应用:强调了PyTorch在RAG开发中的重要性,提供了PyTorch的基础知识和编程技巧。

提供Python 入门、爬虫、数据分析、自动化办公、web开发等教学服务,想一起学习的朋友可以加我微信。

扫码加我微信,回复:分析
一起迎接AI时代

简说Python
号主老表,自学,分享Python,SQL零基础入门、数据分析、数据挖掘、机器学习优质文章以及学习经验。
 最新文章