問題:開源維護者花費大量時間管理重複/相關(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許可獲得許可。