当前位置: 首页 > 科技观察

打代码遇到困难怎么办?这个项目可以帮助你在没有网络连接的情况下找到解决方案

时间:2023-03-17 12:10:05 科技观察

很多开发者在编程过程中遇到问题,第一选择就是打开浏览器,搜索问题,试图找到答案,现在,有一个神器让你不用这么麻烦。这个名为codequestion的工件是基于archive.org上的StackExchangeDump构建的。Codequestion使用来自StackExchange的数据针对预训练模型在本地运行。安装后不需要联网,只需要在终端输入问题,就可以得到答案,搜索结果与在浏览器上搜索没有什么区别。目前codequestion知道的人不多,只获得了117个Star,一共11个分支(Github地址:https://github.com/neuml/codequestion),来看看具体的使用方法:安装方法是最简单的安装方法是通过pip和PyPI:pipinstallcodequestion也可以直接从GitHub安装codequestion。推荐使用Python虚拟环境,支持Python3.6+:pipinstallgit+https://github.com/neuml/codequestion下载模型安装好Codequestion后,需要下载模型。python-mcodequestion.download模型将存储在~/.codequestion/中,预训练模型可以从Github详细信息页面获得支持模型。运行查询运行查询最快的方法是启动代码查询shell$gitreset--hard技术原理原始数据转储处理:代码查询如何工作?首先是原始数据转储处理,其中通过一系列步骤处理来自StackExchange存储库的原始7zXML转储。只检索和存储高分和高分问题,问题和答案合并到一个名为questions.db的SQLite文件中。questions.db的架构如下:$gitreset--hardindexing:codequestion工具为questions.db构建句子嵌入索引。词嵌入模型是建立在questions.db之上的自定义fastText模型。一旦每个标记都转换为词嵌入,就会创建加权句子嵌入。词嵌入使用BM25索引对存储库中的所有标记进行加权。但是有一个重要的修改:标签用于增加标签标记的权重。将questions.db转换为句子嵌入的集合后,将它们归一化并存储在Faiss中,以便进行快速相似性搜索。查询方法:codequestion以与索引相同的方式标记每个查询。这些标记用于构建句子嵌入。将根据Faiss索引查询此嵌入以找到最相似的问题。此外,创作者还在Github项目详情页介绍了如何使用StackExchange构建代码问题模型。感兴趣的小伙伴赶紧收藏吧。