
Ekstraksi Pengetahuan Opaya dan Pengambilan Sempion untuk Aplikasi Gen AI.
Jelajahi dokumen »
Laporkan Bug · Fitur Permintaan
Dewy membantu Anda membangun agen AI dan aplikasi RAG dengan mengelola ekstraksi pengetahuan dari dokumen Anda dan menerapkan pencarian semantik atas konten yang diekstraksi. Muat dokumen Anda dan embun menangani penguraian, chunking, meringkas, dan pengindeksan untuk pengambilan. Dewy dibangun di atas pelajaran menempatkan aplikasi gen AI nyata ke dalam produksi sehingga Anda dapat fokus untuk mendapatkan? Selesai, daripada membandingkan database vektor dan membangun infrastruktur ekstraksi data.
Di bawah ini adalah arsitektur khas agen AI yang menampilkan kain. Dewy menangani semua bagian yang ditampilkan dalam warna coklat sehingga Anda dapat fokus pada aplikasi Anda - bagian -bagian berwarna hijau.

(kembali ke atas)
Untuk mendapatkan salinan lokal dan berjalan ikuti langkah -langkah ini.
(Opsional) Mulai instance pgvector untuk bertahan data Anda
Dewy menggunakan database vektor untuk menyimpan metadata tentang dokumen yang telah Anda muat serta embeddings yang digunakan untuk memberikan hasil pencarian semantik.
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 Jika Anda sudah memiliki instance pgvector Anda dapat membuat database untuk berembun dan mengkonfigurasi yang berembun menggunakannya menggunakan DB Env Var (lihat di bawah).
Instal embun
pip install dewy
Ini akan menginstal berembun di lingkungan Python lokal Anda.
Konfigurasikan Berembo. Dewy akan membaca Env Vars dari file .env jika disediakan. Anda juga dapat mengaturnya secara langsung di lingkungan, misalnya saat mengkonfigurasi instance yang berjalan di Docker / Kubernetes.
# ~/.env
ENVIRONMENT=LOCAL
DB=postgresql://...
OPENAI_API_KEY=...Menyalakan berembun
dewyDewy mencakup konsol admin yang dapat Anda gunakan untuk membuat koleksi, memuat dokumen, dan menjalankan kueri uji.
open http://localhost:8000/adminInstal Perpustakaan Klien API
npm install dewy-tsTerhubung ke instance dari embun
import { Dewy } from 'dewy_ts' ;
const dewy = new Dewy ( )Tambahkan dokumen
await dewy . kb . addDocument ( {
collection_id : 1 ,
url : “https : //arxiv.org/abs/2005.11401”,
} )Mengambil potongan dokumen untuk dorongan 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' } ] ]
} )Instal Perpustakaan Klien API
pip install dewy-clientTerhubung ke instance dari embun
from dewy_client import Client
dewy = Client ( base_url = "http://localhost:8000" )Tambahkan dokumen
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 ”,
))Mengambil potongan dokumen untuk dorongan 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
""" Lihat [ python-langchain.ipynb'](demos/python-langchain-notebook/python-langchain.ipynb) for an example using Dewy in LangChain, including an implementation of LangChain's yang didukung oleh Dewy.
Dewy sedang dalam pengembangan aktif. Ini adalah gambaran umum dari peta jalan kami saat ini - tolong? masalah yang penting bagi Anda. Tidak melihat fitur yang akan membuat berembun lebih baik untuk aplikasi Anda - buat permintaan fitur!
Kontribusi inilah yang membuat komunitas open source menjadi tempat yang luar biasa untuk belajar, menginspirasi, dan menciptakan. Kontribusi apa pun yang Anda buat sangat dihargai .
Jika Anda memiliki saran yang akan membuat ini lebih baik, silakan garukan repo dan buat permintaan tarik. Anda juga bisa membuka masalah dengan tag "peningkatan". Jangan lupa memberi proyek bintang! Terima kasih lagi!
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 jika disediakan. Anda juga dapat mengaturnya secara langsung di lingkungan, misalnya saat mengkonfigurasi instance yang berjalan di 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 dewyBeberapa kode kerangka berdasarkan praktik terbaik dari https://github.com/zhanymkanov/fastapi-best-practices.
Perintah berikut menjalankan tes dan menerapkan serat. Jika Anda berada di poetry shell , Anda dapat menghilangkan poetry run :
poetry run pytestpoetry run ruff check --fixpoetry run ruff formatpoetry run mypy dewyUntuk meregenerasi spesifikasi openapi dan perpustakaan klien:
poetry poe extract-openapi
poetry poe update-client(kembali ke atas)
Melepaskanpyproject.toml untuk dewy b. dewy-client/pyproject.toml untuk dewy-client c. Versi API dalam dewy/config.py d. openapi.yaml dan dewy-client dengan menjalankan poe extract-openapi dan poe update-client .dewy dan dewy-client .(kembali ke atas)
Didistribusikan di bawah lisensi Apache 2. Lihat LICENSE.txt untuk informasi lebih lanjut.
(kembali ke atas)