问题:开源维护者花费大量时间管理重复/相关(Doppelgänger)问题并拉请求请求
解决方案: Doppelgänger将新提交的问题/PR与现有问题进行比较,以自动标记重复/相关(Doppelgänger)问题/PRS
主题:矢量数据库,github,开源,嵌入搜索,抹布,相似性得分
该应用程序是一个GITHUB应用程序,可以自动比较新开放的问题与现有问题,对高度相似的问题结束并评论以减少重复。此外,它根据标题和描述来评论PRS的反馈,以考虑要考虑的要点。
Doppelganger文档
每个issue['title']和issue['body']使用Minilm-L6-V2转换为矢量表示。
每个向量都在Chromadb中持续存在,并使用Chromadb的内置余弦相似性搜索执行相似性搜索。与每个向量一起使用issue_id ,并使用Chromadb的metadata参数存储issue['title'] 。
SIMILARITY_THRESHOLD (即我们认为“相似”的距离d )是可配置的,并且可以设置为0和1 [1]之间的任何小数。
当新提交的问题与最相似的问题之间的余弦距离d大于此阈值时,Doppelganger将关闭任何问题。否则,如果新提交的问题大于(Similarty_threshold*0.5),则将留下有用的评论,表明最相似/相关的问题。
[1]余弦距离
问题和拉的请求存储在每个存储库Chromadb集合中。
克隆这个存储库:
git clone https://github.com/dannyl1u/doppelganger.git
cd doppelganger
安装依赖项:
pip install -r requirements.txt
要创建一个新的.env文件,请在终端中运行以下命令:
cp .env.example .env打开新创建的.env文件并使用您自己的值更新以下变量:
* APP_ID :用您的实际应用ID替换your_app_id_here 。
* WEBHOOK_SECRET :用您的实际webhook秘密替换your_webhook_secret_here 。
* OLLAMA_MODEL :用您选择的llm型号(例如“ llama3.2”)替换your_chosen_llm_model_here 。注意:它必须是Ollama支持的模型(请参阅:https://ollama.com/library for suppled Models)
* NGROK_DOMAIN :如果您有一个4,请用ngrok域替换your_ngrok_domain_here 。将下载的私钥放在项目root中,并将其命名为rsa.pem 。
启动烧瓶应用程序:
python3 app.py该应用程序将开始在http:// localhost上运行:4000
我们将使用ngrok来简单
选项1:在新终端窗口中生成的公共URL ,启动NGrok,为您的本地服务器创建安全的隧道:
ngrok http 4000Ngrok将生成一个公共网址(例如,https://abc123.ngrok.io)
append /webhook到URL,例如https://abc123.ngrok.io-> https://abc123.ngrok.io/webhook
在另一个终端窗口中,启动Ollama
ollama run < an OLLAMA model here >选项2:将Shell脚本与您自己的Ngrok域使用
确保设置环境变量。
./run-dev.sh安装后,该应用将自动:
您可以通过修改脚本中的SIMILARITY_THRESHOLD变量来调整相似性阈值。默认设置为0.5。
rsa.pem文件并正确格式化。 欢迎捐款!请随时提交拉动请求。
该项目已根据MIT许可获得许可。