
การสกัดความรู้ที่มีความคิดเห็นและการดึงความหมายสำหรับแอปพลิเคชัน Gen AI
สำรวจเอกสาร»
รายงานข้อผิดพลาด·คุณลักษณะการร้องขอ
Dewy ช่วยให้คุณสร้าง AI Agent และ RAG Applications โดยการจัดการการสกัดความรู้จากเอกสารของคุณและนำการค้นหาความหมายผ่านเนื้อหาที่แยกออกมา โหลดเอกสารของคุณและ dewy ดูแลการแยกวิเคราะห์การถ่ายทำสรุปและการจัดทำดัชนีสำหรับการดึงข้อมูล Dewy สร้างบทเรียนเกี่ยวกับการวางแอพพลิเคชั่น Gen AI ที่แท้จริงลงในการผลิตเพื่อให้คุณสามารถมุ่งเน้นไปที่การรับ? ทำแทนที่จะเปรียบเทียบฐานข้อมูลเวกเตอร์และการสร้างโครงสร้างพื้นฐานการสกัดข้อมูล
ด้านล่างนี้เป็นสถาปัตยกรรมทั่วไปของ AI Agent ที่แสดงผ้าขี้ริ้ว Dewy จัดการชิ้นส่วนทั้งหมดที่แสดงเป็นสีน้ำตาลเพื่อให้คุณสามารถมุ่งเน้นไปที่แอปพลิเคชันของคุณ - ชิ้นส่วนสีเขียว

(กลับไปด้านบน)
เพื่อรับสำเนาท้องถิ่นและเรียกใช้ทำตามขั้นตอนเหล่านี้
(ไม่บังคับ) เริ่มอินสแตนซ์ pgvector เพื่อคงข้อมูลของคุณ
Dewy ใช้ฐานข้อมูลเวกเตอร์เพื่อจัดเก็บข้อมูลเมตาเกี่ยวกับเอกสารที่คุณโหลดเช่นเดียวกับการฝังตัวที่ใช้เพื่อให้ผลการค้นหาความหมาย
docker run -d
-p 5432:5432
-e POSTGRES_DB=dewydb
-e POSTGRES_USER=dewydbuser
-e POSTGRES_PASSWORD=dewydbpwd
-e POSTGRES_HOST_AUTH_METHOD=trust
ankane/pgvector หากคุณมีอินสแตนซ์ของ pgvector อยู่แล้วคุณสามารถสร้างฐานข้อมูลสำหรับ Dewy และกำหนดค่า Dewy ใช้โดยใช้ DB Env Var (ดูด้านล่าง)
ติดตั้ง Dewy
pip install dewy
สิ่งนี้จะติดตั้ง Dewy ในสภาพแวดล้อม Python ในพื้นที่ของคุณ
กำหนดค่า Dewy Dewy จะอ่าน Env Vars จากไฟล์ .env หากมีให้ นอกจากนี้คุณยังสามารถตั้งค่าเหล่านี้โดยตรงในสภาพแวดล้อมเช่นเมื่อกำหนดค่าอินสแตนซ์ที่ทำงานใน Docker / Kubernetes
# ~/.env
ENVIRONMENT=LOCAL
DB=postgresql://...
OPENAI_API_KEY=...ไฟไหม้สดชื่น
dewyDewy รวมถึงคอนโซลผู้ดูแลระบบที่คุณสามารถใช้เพื่อสร้างคอลเลกชันโหลดเอกสารและเรียกใช้แบบสอบถามทดสอบ
open http://localhost:8000/adminติดตั้งไลบรารีไคลเอนต์ API
npm install dewy-tsเชื่อมต่อกับอินสแตนซ์ของ Dewy
import { Dewy } from 'dewy_ts' ;
const dewy = new Dewy ( )เพิ่มเอกสาร
await dewy . kb . addDocument ( {
collection_id : 1 ,
url : “https : //arxiv.org/abs/2005.11401”,
} )ดึงเอกสารเอกสารสำหรับการแจ้งเตือน LLM
const context = await dewy . kb . retrieveChunks ( {
collection_id : 1 ,
query : "tell me about RAG" ,
n : 10 ,
} ) ;
// Minimal prompt example
const prompt = [
{
role : 'system' ,
content : `You are a helpful assistant.
You will take into account any CONTEXT BLOCK that is provided in a conversation.
START CONTEXT BLOCK
${ context . results . map ( ( c : any ) => c . chunk . text ) . join ( "n" ) }
END OF CONTEXT BLOCK
` ,
} ,
]
// Using OpenAI to generate responses
const response = await openai . chat . completions . create ( {
model : 'gpt-3.5-turbo' ,
stream : true ,
messages : [ ... prompt , [ { role : 'user' : content : 'Tell me about RAG' } ] ]
} )ติดตั้งไลบรารีไคลเอนต์ API
pip install dewy-clientเชื่อมต่อกับอินสแตนซ์ของ Dewy
from dewy_client import Client
dewy = Client ( base_url = "http://localhost:8000" )เพิ่มเอกสาร
from dewy_client . api . kb import add_document
from dewy_client . models import AddDocumentRequest
await add_document . asyncio ( client = dewy , body = AddDocumentRequest (
collection_id = 1 ,
url = “ https : // arxiv . org / abs / 2005.11401 ”,
))ดึงเอกสารเอกสารสำหรับการแจ้งเตือน LLM
from dewy_client . api . kb import retrieve_chunks
from dewy_client . modles import RetrieveRequest
chunks = await retrieve_chunks . asyncio ( client = dewy , body = RetrieveRequest (
collection_id = 1 ,
query = "tell me about RAG" ,
n = 10 ,
))
# Minimal prompt example
prompt = f"""
You will take into account any CONTEXT BLOCK that is provided in a conversation.
START CONTEXT BLOCK
{ " n " . join ([ chunk . text for chunk in chunks . text_chunks ]) }
END OF CONTEXT BLOCK
""" ดู [ python-langchain.ipynb'](demos/python-langchain-notebook/python-langchain.ipynb) for an example using Dewy in LangChain, including an implementation of LangChain's ที่ได้รับการสนับสนุนจาก Dewy
Dewy อยู่ระหว่างการพัฒนาอย่างแข็งขัน นี่คือภาพรวมของแผนงานปัจจุบันของเรา - ได้โปรด? ปัญหาที่สำคัญสำหรับคุณ ไม่เห็นคุณสมบัติที่จะทำให้ดีขึ้นสำหรับแอปพลิเคชันของคุณ - สร้างคำขอคุณสมบัติ!
การมีส่วนร่วมคือสิ่งที่ทำให้ชุมชนโอเพ่นซอร์สเป็นสถานที่ที่น่าทึ่งในการเรียนรู้สร้างแรงบันดาลใจและสร้าง การมีส่วนร่วมใด ๆ ที่คุณทำ จะได้รับการชื่นชมอย่างมาก
หากคุณมีข้อเสนอแนะที่จะทำให้สิ่งนี้ดีขึ้นโปรดแยก repo และสร้างคำขอดึง นอกจากนี้คุณยังสามารถเปิดปัญหาด้วยแท็ก "การปรับปรุง" อย่าลืมให้โครงการเป็นดารา! ขอบคุณอีกครั้ง!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )git clone https://github.com/DewyKB/dewy.gitpoetry install.env หากมีให้ นอกจากนี้คุณยังสามารถตั้งค่าเหล่านี้โดยตรงในสภาพแวดล้อมเช่นเมื่อกำหนดค่าอินสแตนซ์ที่ทำงานใน Docker / Kubernetes cat > .env << EOF
ENVIRONMENT=LOCAL
DB=postgresql://...
OPENAI_API_KEY=...
EOF cd frontend && npm install && npm run build cd dewy-client && poetry installpoetry run dewyรหัสโครงกระดูกบางส่วนขึ้นอยู่กับแนวทางปฏิบัติที่ดีที่สุดจาก https://github.com/zhanymkanov/fastapi-best-practices
คำสั่งต่อไปนี้เรียกใช้การทดสอบและใช้ผ้าสำลี หากคุณอยู่ใน poetry shell คุณสามารถละเว้น poetry run :
poetry run pytestpoetry run ruff check --fixpoetry run ruff formatpoetry run mypy dewyเพื่อสร้างสเป็ค OpenAPI และไลบรารีไคลเอ็นต์ใหม่:
poetry poe extract-openapi
poetry poe update-client(กลับไปด้านบน)
การปล่อยpyproject.toml สำหรับ dewy b. dewy-client/pyproject.toml สำหรับ dewy-client c. เวอร์ชัน API ใน dewy/config.py d. openapi.yaml และ dewy-client โดยใช้ poe extract-openapi และ poe update-clientdewy และ dewy-client(กลับไปด้านบน)
แจกจ่ายภายใต้ใบอนุญาต Apache 2 ดู LICENSE.txt สำหรับข้อมูลเพิ่มเติม
(กลับไปด้านบน)