
Knowa – Trình tối ưu hóa ngữ cảnh LLM mã nguồn mở
URL bài viết: https://github.com/zzorphcreator/knowa URL bình luận: https://news.ycombinator.com/item?id=48328512 Điểm: 1 Bình luận: 0
Knowa
Vấn đề: Chi phí token của LLM tăng nhanh chóng.
Cách tiếp cận đơn giản để xây dựng các ứng dụng hỗ trợ bởi AI là tải tài liệu vào lời nhắc (prompt) và để LLM tự xử lý. Cách này hoạt động trong các bản demo nhưng lại gặp lỗi khi triển khai thực tế.
Một cơ sở tri thức 1.000 trang có khoảng 2–4 triệu token. Với mức giá API hiện tại, việc gửi toàn bộ dữ liệu này trong mỗi yêu cầu sẽ tốn hàng đô la cho mỗi truy vấn. Với 10.000 truy vấn mỗi ngày, chi phí này lên tới hàng chục nghìn đô la mỗi tháng – trong khi 95% dữ liệu đó không liên quan đến câu hỏi được đặt ra. Khi việc sử dụng AI mở rộng trên các nhóm và sản phẩm, đây sẽ trở thành khoản chi phí lớn nhất.
Nhiệm vụ cốt lõi của Knowa là giải quyết vấn đề này. Knowa lập chỉ mục tài liệu của bạn một lần – dưới dạng các đoạn vector, các trang văn bản đầy đủ và biểu đồ thực thể có tên – sau đó, đối với mỗi câu hỏi, Knowa chỉ trích xuất một vài đoạn thực sự liên quan, thường là 1.000–3.000 token từ một kho ngữ liệu lớn. Ở quy mô lớn, điều này giúp giảm 90–99% ngữ cảnh được gửi đến LLM mà không làm giảm chất lượng câu trả lời. Mỗi phản hồi truy vấn bao gồm một con số tiết kiệm token được đo lường để bạn có thể theo dõi trong quá trình sản xuất. Mức tiết kiệm phụ thuộc vào kích thước kho ngữ liệu – xem mục "Understanding token savings" để biết những gì có thể mong đợi ở các quy mô khác nhau.
Điều này quan trọng ở hiện tại và sẽ càng quan trọng hơn khi việc sử dụng AI chuyển từ giai đoạn thử nghiệm sang sản phẩm và cơ sở hạ tầng toàn công ty. Việc truy xuất chính xác không phải là một tính năng bổ sung – đó là sự khác biệt giữa một tính năng AI có thể mở rộng và một tính năng làm phá vỡ ngân sách của bạn.
Knowa làm gì
Knowa là một thư viện truy xuất lai và máy chủ cơ sở tri thức. Knowa nhập tài liệu từ các thư mục cục bộ, Notion, Confluence và bất kỳ nguồn tùy chỉnh nào bạn kết nối – lưu trữ chúng dưới dạng các đoạn vector và các trang văn bản đầy đủ trong PostgreSQL, và dưới dạng biểu đồ tri thức thực thể có tên trong PostgreSQL (mặc định), Neo4j hoặc Kuzu. Đối với mỗi câu hỏi, Knowa chỉ truy xuất ngữ cảnh liên quan nhất trên cả ba biểu diễn và trả về sẵn sàng để đưa vào bất kỳ LLM hoặc quy trình AI nào bạn chọn.
Biểu đồ tri thức được xây dựng trong quá trình lập chỉ mục và cung cấp cho việc truy xuất một chiều cấu trúc mà tìm kiếm vector thuần túy bỏ lỡ – kết nối con người, sản phẩm, tổ chức và khái niệm trên toàn bộ kho tài liệu của bạn để các câu hỏi tập trung vào thực thể ("những nhóm nào làm việc trên X?", "những trang nào đề cập đến cả Y và Z?") nhận được câu trả lời chính xác, có mục tiêu.
Cách biểu đồ được điền phụ thuộc vào mức độ bao phủ bạn cần:
spaCy NER (mặc định) – chạy cục bộ tại thời điểm lập chỉ mục với chi phí API bằng không. Nhận dạng các loại thực thể tiêu chuẩn (người, tổ chức, địa điểm, ngày tháng và nhiều hơn nữa). Bạn có thể thay đổi mô hình để cải thiện độ chính xác hoặc nhắm mục tiêu một lĩnh vực cụ thể: en_core_web_trf (dựa trên transformer, tốt hơn với các tên mơ hồ), các mô hình scispaCy cho văn bản khoa học hoặc y sinh, hoặc bất kỳ mô hình tương thích spaCy nào.
Làm giàu thực thể LLM (tùy chọn) – một lượt thứ hai bổ sung sử dụng bất kỳ mô hình tương thích OpenAI nào (gpt-4o-mini, Qwen3, Kimi2 và các mô hình khác). LLM trích xuất các thực thể cụ thể theo lĩnh vực mà mô hình NER tổng quát bỏ lỡ: các tính năng sản phẩm, tên mã nội bộ, tiêu chuẩn kỹ thuật, các khái niệm trừu tượng – bất cứ điều gì có ý nghĩa trong ngôn ngữ của tổ chức bạn. Chạy đồng thời trên các trang để giữ cho việc lập chỉ mục nhanh chóng ở quy mô lớn và có chi phí khoảng 0,30 USD cho mỗi 1.000 trang với gpt-4o-mini.
Bắt đầu nhanh
1. Điều kiện tiên quyết
Python 3.11+
Docker (cho PostgreSQL)
Khóa API OpenAI
2. Khởi động PostgreSQL
docker compose up -d
Lệnh này khởi động một phiên bản PostgreSQL 16 với pgvector được cài đặt sẵn, được hiển thị trên localhost:5432. Dữ liệu được lưu trữ trong một Docker volume qua các lần khởi động lại.
3. Tạo môi trường ảo
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
HOẶC - nếu đã cài đặt miniconda
conda create -n knowa python=3.12
conda activate knowa
4. Cài đặt
pip install -r requirements.txt
python -m spacy download en_core_web_sm
pip install -e . # đăng ký lệnh CLI `knowa`
5. Cấu hình
cp .env.example .env
Chỉnh sửa .env và điền các giá trị bắt buộc:
Biến
Bắt buộc
Ghi chú
DATABASE_URL
Có
Đã điền sẵn để khớp với docker compose — không cần thay đổi
OPENAI_API_KEY
Có
Khóa API OpenAI của bạn
OPENAI_MODEL
Có
Ví dụ: gpt-5.4
API_KEY
Có
Bất kỳ mã bí mật ngẫu nhiên nào — dùng để bảo vệ REST API
NOTION_API_KEY
Không
Chỉ bắt buộc đối với các nguồn Notion
CONFLUENCE_*
Không
Cả bốn biến đều bắt buộc đối với các nguồn Confluence
SPACY_MODEL
Không
Mô hình NER để trích xuất đồ thị (mặc định: en_core_web_sm)
ENTITY_LLM_MODEL
Không
Bật tính năng làm giàu thực thể LLM, ví dụ: gpt-4o-mini (xem bên dưới)
Tạo khóa API mạnh:
python3 -c "import secrets; print(secrets.token_urlsafe(32))"
6. Lập chỉ mục tài liệu của bạn
knowa index /path/to/docs --name "My Docs"
Các bản di chuyển (migrations) tự động chạy khi thực hiện lệnh đầu tiên. Các loại tệp được hỗ trợ: .md, .txt, .pdf, .docx
7. Trò chuyện với chỉ mục
knowa chat "Bạn muốn biết gì?"
8. Chạy giao diện người dùng quản trị (admin UI)
uvicorn knowa.api.main:app --reload --port 8000
Mở http://localhost:8000/admin/ui — tìm kiếm, duyệt các nguồn và kích hoạt xây dựng lại từ trình duyệt.
Ba cách sử dụng Knowa
Là một thư viện Python — nhúng Knowa trực tiếp vào ứng dụng của bạn. Bạn sở hữu lệnh gọi LLM; Knowa
xử lý việc lập chỉ mục, truy xuất và định dạng ngữ cảnh. Hoạt động với Anthropic, OpenAI, Gemini,
các mô hình cục bộ, LangChain, LlamaIndex hoặc bất kỳ framework nào khác.
Là một REST API — chạy máy chủ FastAPI và truy cập /query để nhận câu trả lời hoàn chỉnh với
trích dẫn từ bất kỳ ngôn ngữ hoặc công cụ nào, không yêu cầu Python.
Là một công cụ CLI — sử dụng lệnh knowa để lập chỉ mục các thư mục và trò chuyện với cơ sở tri thức của bạn
trực tiếp từ thiết bị đầu cuối, không yêu cầu máy chủ hoặc mã.
Tính năng
Giảm tới 90–99% token ở quy mô lớn — truy xuất lai ba đường dẫn (tìm kiếm vector,
tìm kiếm toàn văn, đồ thị thuộc tính) trích xuất chính xác những gì liên quan; mỗi truy vấn
báo cáo mức tiết kiệm token đã đo lường để bạn có thể theo dõi hiệu quả trong sản xuất. Xem
Tìm hiểu về tiết kiệm token để có kỳ vọng thực tế
ở các kích thước tập dữ liệu khác nhau.
Phân đoạn theo cấp bậc — tài liệu được chia thành các đoạn con nhỏ để tìm kiếm vector chính xác,
sau đó mở rộng thành các đoạn cha lớn hơn để có ngữ cảnh đầy đủ — tối đa hóa mức độ liên quan
mà không làm mất thông tin xung quanh.
Bộ nhúng có thể cắm được — OpenAIEmbedder (mặc định) hoặc SentenceTra
Nguồn tin: Hacker News LLM — Tác giả: zzorphcreator. Bản dịch tiếng Việt do AI thực hiện, có thể có sai sót.