รวมเทคโนโลยี Graphrag ของ Microsoft เข้ากับ Open WebUI สำหรับการดึงข้อมูลขั้นสูง
ภาษาอังกฤษ | 简体中文graphrag4openwebui เป็นอินเทอร์เฟซ API ที่ออกแบบมาโดยเฉพาะสำหรับ WebUI แบบเปิดโดยมีวัตถุประสงค์เพื่อรวมเทคโนโลยี Graphrag (Generation-Augmented Generation ที่ใช้กราฟมาใช้ โครงการนี้มีระบบดึงข้อมูลที่มีประสิทธิภาพซึ่งรองรับโมเดลการค้นหาหลายแบบโดยเฉพาะอย่างยิ่งเหมาะสำหรับใช้ในอินเทอร์เฟซผู้ใช้เว็บแบบเปิด
เป้าหมายหลักของโครงการนี้คือการจัดหาอินเทอร์เฟซที่สะดวกสำหรับ Open WebUI เพื่อใช้ประโยชน์จากคุณสมบัติที่ทรงพลังของ graphrag มันรวมวิธีการดึงข้อมูลหลักสามวิธีและเสนอตัวเลือกการค้นหาที่ครอบคลุมทำให้ผู้ใช้สามารถรับผลการค้นหาอย่างละเอียดและแม่นยำ
การค้นหาในท้องถิ่น
การค้นหาทั่วโลก
ค้นหา tavily
การค้นหาแบบจำลองเต็มรูปแบบ
ตอนนี้ GraphRag4Openwebui รองรับการใช้แบบจำลองภาษาท้องถิ่น (LLMS) และโมเดลการฝังเพิ่มความยืดหยุ่นและความเป็นส่วนตัวของโครงการ โดยเฉพาะเราสนับสนุนโมเดลท้องถิ่นต่อไปนี้:
โอลลา
API_BASE เพื่อชี้ไปที่จุดสิ้นสุด API ของ Ollamaสตูดิโอ LM
API_BASEโมเดลการฝังในท้องถิ่น
GRAPHRAG_EMBEDDING_MODELการสนับสนุนสำหรับรุ่นท้องถิ่นนี้ช่วยให้ graphrag4openwebui ทำงานได้โดยไม่ต้องพึ่งพา API ภายนอกเพิ่มความเป็นส่วนตัวของข้อมูลและลดต้นทุนการใช้งาน
ตรวจสอบให้แน่ใจว่าคุณติดตั้ง Python 3.8 หรือสูงกว่าในระบบของคุณ จากนั้นทำตามขั้นตอนเหล่านี้เพื่อติดตั้ง:
โคลนที่เก็บ:
git clone https://github.com/your-username/GraphRAG4OpenWebUI.git
cd GraphRAG4OpenWebUIสร้างและเปิดใช้งานสภาพแวดล้อมเสมือนจริง:
python -m venv venv
source venv/bin/activate # On Windows use venvScriptsactivateติดตั้งการพึ่งพา:
pip install -r requirements.txtหมายเหตุ: แพ็คเกจ graphrag อาจต้องติดตั้งจากแหล่งเฉพาะ หากคำสั่งข้างต้นไม่สามารถติดตั้ง graphrag โปรดดูคำแนะนำเฉพาะของ Microsoft Research หรือติดต่อผู้ดูแลสำหรับวิธีการติดตั้งที่ถูกต้อง
ก่อนที่จะเรียกใช้ API คุณต้องตั้งค่าตัวแปรสภาพแวดล้อมต่อไปนี้ คุณสามารถทำได้โดยการสร้างไฟล์ .env หรือส่งออกโดยตรงในเทอร์มินัลของคุณ:
# Set the TAVILY API key
export TAVILY_API_KEY= " your_tavily_api_key "
export INPUT_DIR= " /path/to/your/input/directory "
# Set the API key for LLM
export GRAPHRAG_API_KEY= " your_actual_api_key_here "
# Set the API key for embedding (if different from GRAPHRAG_API_KEY)
export GRAPHRAG_API_KEY_EMBEDDING= " your_embedding_api_key_here "
# Set the LLM model
export GRAPHRAG_LLM_MODEL= " gemma2 "
# Set the API base URL
export API_BASE= " http://localhost:11434/v1 "
# Set the embedding API base URL (default is OpenAI's API)
export API_BASE_EMBEDDING= " https://api.openai.com/v1 "
# Set the embedding model (default is "text-embedding-3-small")
export GRAPHRAG_EMBEDDING_MODEL= " text-embedding-3-small "ตรวจสอบให้แน่ใจว่าได้แทนที่ตัวยึดตำแหน่งในคำสั่งข้างต้นด้วยคีย์และเส้นทาง API ที่แท้จริงของคุณ
เริ่มต้นเซิร์ฟเวอร์:
python main-en.py
เซิร์ฟเวอร์จะทำงานบน http://localhost:8012
จุดสิ้นสุด API:
/v1/chat/completions : การโพสต์คำขอสำหรับทำการค้นหา/v1/models : รับคำขอเพื่อดึงรายการรุ่นที่มีอยู่ การรวมเข้ากับ Open WebUI: ในการกำหนดค่า WebUI แบบเปิดตั้งค่าจุดสิ้นสุด API เป็น http://localhost:8012/v1/chat/completions สิ่งนี้จะช่วยให้ WebUI เปิดใช้งานฟังก์ชั่นการค้นหาของ GraphRag4Openwebui
ตัวอย่างคำขอค้นหา:
import requests
import json
url = "http://localhost:8012/v1/chat/completions"
headers = { "Content-Type" : "application/json" }
data = {
"model" : "full-model:latest" ,
"messages" : [{ "role" : "user" , "content" : "Your search query" }],
"temperature" : 0.7
}
response = requests . post ( url , headers = headers , data = json . dumps ( data ))
print ( response . json ())graphrag-local-search:latest : การค้นหาในท้องถิ่นgraphrag-global-search:latest : การค้นหาทั่วโลกtavily-search:latest : Tavily Searchfull-model:latest : การค้นหาที่ครอบคลุม (รวมถึงวิธีการค้นหาทั้งหมดด้านบน) INPUT_DIRยินดีต้อนรับคำขอดึง สำหรับการเปลี่ยนแปลงครั้งใหญ่โปรดเปิดปัญหาก่อนเพื่อหารือเกี่ยวกับสิ่งที่คุณต้องการเปลี่ยนแปลง
ใบอนุญาต Apache-2.0