ปัญหา: ผู้ดูแลโอเพนซอร์ซใช้เวลามากในการจัดการปัญหาซ้ำ/ที่เกี่ยวข้อง (doppelgänger) ปัญหาและคำขอดึง
สารละลาย: Doppelgängerเปรียบเทียบปัญหาที่ส่งใหม่/PRS กับปัญหาที่มีอยู่เพื่อตั้งค่าสถานะการทำซ้ำ/ที่เกี่ยวข้อง (doppelgänger) โดยอัตโนมัติ/PRS
หัวข้อ: เวกเตอร์ DB, GitHub, โอเพ่นซอร์ส, การค้นหาการฝัง, RAG, คะแนนความคล้ายคลึงกัน
แอปพลิเคชันนี้เป็นแอพ GitHub ที่เปรียบเทียบปัญหาที่เปิดใหม่โดยอัตโนมัติกับแอพที่มีอยู่การปิดและแสดงความคิดเห็นในประเด็นที่คล้ายกันอย่างมากเพื่อลดการทำซ้ำ นอกจากนี้ความคิดเห็นข้อเสนอแนะเกี่ยวกับ PRS ตามชื่อและคำอธิบายสำหรับคะแนนที่ควรพิจารณา
เอกสาร Doppelganger
แต่ละ issue['title'] และ issue['body'] จะถูกแปลงเป็นตัวแทนเวกเตอร์โดยใช้ minilm-l6-v2
เวกเตอร์แต่ละตัวยังคงมีอยู่ใน Chromadb และทำการค้นหาความคล้ายคลึงกันโดยใช้ การค้นหาความคล้ายคลึงกัน ในตัวของ Chromadb พร้อมกับเวกเตอร์แต่ละตัวเป็น issue_id และ issue['title'] ที่เก็บไว้โดยใช้อาร์กิวเมนต์ metadata ของ Chromadb
SIMILARITY_THRESHOLD (เช่นระยะทาง d ที่เราพิจารณาว่า "คล้ายกัน") สามารถกำหนดค่าได้และสามารถตั้งค่าเป็นทศนิยมระหว่าง 0 ถึง 1 [1]
Doppelganger จะปิดปัญหาใด ๆ เมื่อระยะห่างของโคไซน์ d ระหว่างปัญหาที่ส่งใหม่และปัญหาที่คล้ายกันมากที่สุดมากกว่าเกณฑ์นี้ มิฉะนั้นหากปัญหาที่ส่งมาใหม่มากกว่า (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 : แทนที่ your_app_id_here ด้วยรหัสแอพจริงของคุณ
* WEBHOOK_SECRET : แทนที่ your_webhook_secret_here ด้วยความลับ webhook จริงของคุณ
* OLLAMA_MODEL : แทนที่ your_chosen_llm_model_here ด้วยรุ่น LLM ที่คุณเลือก (เช่น "llama3.2") หมายเหตุ: ต้องเป็นโมเดลที่รองรับ Ollama (ดู: https://ollama.com/library สำหรับรุ่นที่รองรับ)
* NGROK_DOMAIN : แทนที่ your_ngrok_domain_here ด้วยโดเมน ngrok ของคุณถ้าคุณมีหนึ่ง 4 วางคีย์ส่วนตัวที่ดาวน์โหลดในรูทโครงการและตั้งชื่อมัน rsa.pem
เริ่มแอปพลิเคชันขวด:
python3 app.pyแอปพลิเคชันจะเริ่มทำงานบน http: // localhost: 4000
เราจะใช้ Ngrok เพื่อความเรียบง่าย
ตัวเลือกที่ 1: URL สาธารณะที่สร้างขึ้น ในหน้าต่างเทอร์มินัลใหม่เริ่ม NGROK เพื่อสร้างอุโมงค์ที่ปลอดภัยไปยังเซิร์ฟเวอร์ท้องถิ่นของคุณ:
ngrok http 4000Ngrok จะสร้าง URL สาธารณะ (เช่น https://abc123.ngrok.io)
ต่อท้าย /webhook ไปยัง URL เช่น https://abc123.ngrok.io -> https://abc123.ngrok.io/webhook
ในหน้าต่างเทอร์มินัลอื่นเริ่ม Ollama
ollama run < an OLLAMA model here >ตัวเลือกที่ 2: การใช้เชลล์สคริปต์กับโดเมน NGROK ของคุณเอง
ตรวจสอบให้แน่ใจว่ามีการตั้งค่าตัวแปรสภาพแวดล้อม
./run-dev.shเมื่อติดตั้งแอพจะโดยอัตโนมัติ:
คุณสามารถปรับเกณฑ์ความคล้ายคลึงกันได้โดยการปรับเปลี่ยนตัวแปร SIMILARITY_THRESHOLD ในสคริปต์ ค่าเริ่มต้นถูกตั้งค่าเป็น 0.5
rsa.pem มีอยู่และจัดรูปแบบอย่างถูกต้อง ยินดีต้อนรับ! โปรดส่งคำขอดึง
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาต MIT