AI-Assistant-Ollama
Описание проекта
Этот проект демонстрирует, как использовать различные компоненты из библиотек langchain_community и langchain_core для загрузки, преобразования, встраивания и извлечения документов из базы данных PostgreSQL с включенным PGVector. Документы поставляются из URL -адресов, превращаются в текст, разделены на управляемые куски и хранятся как векторы в базе данных для поиска. Проект также демонстрирует, как создать тряпную (извлеченную аугментированную цепочку) с использованием языковой модели Ollama, чтобы ответить на вопросы, основанные на контексте, извлеченном из векторного магазина.
Предварительные условия
- Python 3.7+
- PostgreSQL с включенным PGVector
- Docker (необязательно, для работы PostgreSQL с PGVector)
Установка
- Клонировать репозиторий:
git clone https://github.com/Atomic-man007/AI-assistant-ollama.git
- Создайте виртуальную среду и активируйте ее:
python -m venv venv
source venv/bin/activate # On Windows, use `venvScriptsactivate`
- Установите необходимые пакеты:
pip install -r requirements.txt
- Настройка PostgreSQL с включенным PGVector. Вы можете использовать Docker, чтобы быстро раскрутить экземпляр PostgreSQL с помощью PGVector:
docker run --name pgvector -e POSTGRES_PASSWORD=mysecretpassword -d -p 5432:5432 ankane/pgvector
- Установите переменную среды
DB_URL , чтобы указать на ваш экземпляр PostgreSQL:
export DB_URL=postgresql://postgres:mysecretpassword@localhost:5432/postgres
Использование
Обновите список urls в main функции с помощью URL -адресов документов, которые вы хотите обработать.
Запустите сценарий:
Компоненты
- Asynchtmlloader : асинхронно загружает HTML -контент из предоставленных URL -адресов.
- HTML2TextTransformer : преобразует документы HTML в простой текст.
- Ollamaembeddings : встраивает текстовые документы в векторное пространство.
- PGVector : реализация векторного хранилища с использованием PostgreSQL с расширением PGVector.
- Recursivecharactertextsplitter : разбивает текстовые документы на куски указанного размера.
- ChatPromptTemplate : создает шаблон приглашения в чате для создания ответов.
- RunnablePassThrough : проходной проходной для компонентов цепочки.
- Оллама : языковая модель, используемая для генерации ответов на основе извлеченного контекста.
Пример
Сценарий демонстрирует следующие шаги:
- Загрузите HTML -документы из предоставленных URL.
- Преобразовать HTML -документы в простой текст.
- Разделите текстовые документы на более мелкие куски.
- Встройте текстовые куски в векторное пространство и храните их в базе данных PostgreSQL.
- Получить соответствующий контекст из векторного магазина.
- Используйте полученный контекст, чтобы сгенерировать ответ на вопрос с использованием языковой модели Ollama.
Лицензия
Этот проект лицензирован по лицензии MIT. Смотрите файл лицензии для получения подробной информации.
Благодарности
-
langchain_community и langchain_core Библиотеки для предоставления компонентов, используемых в этом проекте. - PostgreSQL и PGVector для реализации векторного магазина.
- Ollama для языковой модели, используемой для генерации ответов.