
Устороннее извлечение знаний и семантическое поиск для приложений GEA AI.
Изучите документы »
Ошибка отчета · Функция запроса
Dewy помогает вам создавать агенты ИИ и тряпичные приложения, управляя извлечением знаний из ваших документов и реализуя семантический поиск по извлеченному контенту. Загрузите свои документы, и Dewy заботится о разборе, подсчета, суммировании и индексации для поиска. Dewy опирается на уроки применения реальных приложений Gen AI в производство, чтобы вы могли сосредоточиться на получении? Сделано, вместо сравнения векторных баз данных и инфраструктуры извлечения данных построения.
Ниже приведена типичная архитектура агента ИИ, выполняющего тряпку. 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 (см. Ниже).
Установите роса
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Подключиться к экземпляру роси
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Подключиться к экземпляру роси
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 Baseretriver', поддержанного Dewy.
Дьюи находится в активном развитии. Это обзор нашей нынешней дорожной карты - пожалуйста? Проблемы, которые важны для вас. Не видите функции, которая сделает Dewy лучше для вашего приложения - создайте запрос на функцию!
Вклад - это то, что делает сообщество с открытым исходным кодом таким удивительным местом для изучения, вдохновения и создания. Любой вклад, которые вы вносите, высоко ценится .
Если у вас есть предложение, которое сделает это лучше, пожалуйста, разделите репо и создайте запрос на тягу. Вы также можете просто открыть проблему с тегом «Улучшение». Не забудьте дать проекту звезду! Еще раз спасибо!
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-client .dewy и dewy-client .(Вернуться к вершине)
Распределено по лицензии Apache 2. См. LICENSE.txt для получения дополнительной информации.
(Вернуться к вершине)