HN công bố: FastGraphRAG – kỹ thuật RAG cải tiến tận dụng PageRank truyền thống
(github.com/circlemind-ai)Khung Fast GraphRAG tinh gọn và có thể điều khiển bằng prompt
- Tri thức có thể diễn giải và gỡ lỗi: đồ thị cung cấp một cách nhìn tri thức mà con người có thể khám phá, đồng thời có thể truy vấn, trực quan hóa và cập nhật
- Nhanh, rẻ và hiệu quả: được thiết kế để chạy ở quy mô lớn với yêu cầu tài nguyên và chi phí thấp
- Dữ liệu động: tự động tạo và cải thiện đồ thị để phù hợp với yêu cầu của miền và ontology
- Cập nhật gia tăng: hỗ trợ cập nhật theo thời gian thực khi dữ liệu tiếp tục phát triển
- Khám phá thông minh: tận dụng duyệt đồ thị dựa trên PageRank để nâng cao độ chính xác và độ tin cậy
- Hỗ trợ bất đồng bộ và kiểu dữ liệu: hỗ trợ đầy đủ async và type, mang lại quy trình làm việc vững chắc và có thể dự đoán
Cài đặt
-
Cài từ PyPi (khuyến nghị)
pip install fast-graphrag -
Cài từ mã nguồn
# Trước tiên hãy clone kho lưu trữ này cd fast_graphrag poetry install
Bắt đầu nhanh
-
Đặt khóa API OpenAI trong môi trường
export OPENAI_API_KEY="sk-..." -
Tải A Christmas Carol của Charles Dickens
curl https://raw.githubusercontent.com/circlemind-ai/fast-graphrag/… > ./book.txt -
Ví dụ mã Python
from fast_graphrag import GraphRAG DOMAIN = "Analyze this story and identify the characters. Focus on how they interact with each other, the locations they explore, and their relationships." EXAMPLE_QUERIES = [ "What is the significance of Christmas Eve in A Christmas Carol?", "How does the setting of Victorian London contribute to the story's themes?", "Describe the chain of events that leads to Scrooge's transformation.", "How does Dickens use the different spirits (Past, Present, and Future) to guide Scrooge?", "Why does Dickens choose to divide the story into \"staves\" rather than chapters?" ] ENTITY_TYPES = ["Character", "Animal", "Place", "Object", "Activity", "Event"] grag = GraphRAG( working_dir="./book_example", domain=DOMAIN, example_queries="\n".join(EXAMPLE_QUERIES), entity_types=ENTITY_TYPES ) with open("./book.txt") as f: grag.insert(f.read()) print(grag.query("Who is Scrooge?").response) -
Khi khởi tạo lại fast-graphrag trong cùng thư mục làm việc, mọi tri thức sẽ được tự động giữ nguyên
Ví dụ
- Có thể tham khảo thư mục
examplesđể xem tutorial về các trường hợp sử dụng phổ biến của thư việncustom_llm.py: ví dụ đơn giản về cách cấu hình fast-graphrag với nhiều mô hình ngôn ngữ và bộ nhúng tương thích OpenAI API khác nhau
Đóng góp
- Hoan nghênh mọi đóng góp, lớn hay nhỏ. Đóng góp giúp cộng đồng mã nguồn mở trở thành nơi tuyệt vời để học hỏi, truyền cảm hứng và sáng tạo
- Có thể xem hướng dẫn đóng góp để biết cách bắt đầu
- Nếu chưa biết nên bắt đầu từ đâu, bạn có thể tham gia Discord để đặt câu hỏi
Triết lý
- Sứ mệnh của chúng tôi là tăng số lượng ứng dụng GenAI thành công trên thế giới
- Để làm được điều đó, chúng tôi xây dựng các công cụ bộ nhớ và dữ liệu để ứng dụng LLM có thể tận dụng các pipeline truy xuất có mức độ chuyên biệt cao mà không cần đến sự phức tạp của việc thiết lập và duy trì workflow tác tử
Mã nguồn mở hoặc dịch vụ được quản lý
- Kho lưu trữ này được phát hành theo giấy phép MIT. Xem
LICENSE.txtđể biết thêm chi tiết - Cách nhanh nhất và đáng tin cậy nhất để bắt đầu với Fast GraphRAG là sử dụng dịch vụ được quản lý
- 100 yêu cầu đầu tiên mỗi tháng được miễn phí, sau đó sẽ tính phí theo mức sử dụng
1 bình luận
Ý kiến Hacker News
Có thể đạt được kết quả có độ liên quan rất cao khi dùng BM25 cùng với LLM
PageRank và Triangle Centrality là những chỉ số độ trung tâm thú vị có thể áp dụng cho đồ thị
Tôi nghĩ truy hồi thông tin truyền thống phù hợp với RAG
Muốn dùng hệ thống GraphRag tại một startup AI để phân tích tài liệu quy mô lớn
Thắc mắc về việc PageRank yêu cầu OpenAI API key
Câu hỏi về cách lưu trữ và truy vấn đồ thị mà không cần cơ sở dữ liệu đồ thị
Câu hỏi về lượng văn bản cần thiết để xây dựng knowledge graph cho văn bản đặc thù theo miền
Câu hỏi về cách miền và các truy vấn ví dụ giúp ích cho việc xây dựng knowledge graph
Bối rối về chính sách giá
Câu hỏi liệu câu trả lời cho "Scrooge là ai?" có tốt hơn các cách tiếp cận khác hay không