chat-with-your-doc -это демонстрационное приложение, которое использует возможности CATGPT/GPT-4 и Langchain, чтобы позволить пользователям общаться со своими документами. Этот репозиторий размещает кодовую базу, инструкции и ресурсы, необходимые для настройки и запуска приложения.
Основная цель этого проекта - упростить взаимодействие с документами и извлечь ценную информацию с помощью естественного языка. Этот проект построен с использованием Langchain и GPT-4/CHATGPT, чтобы предоставить пользователю плавный и естественный разговорный опыт при поддержке как Azure OpenAI Services , так и OpenAI

Azure OpenAI Services , так и OpenAI
Предложите установить на Ubuntu вместо Centos/Debian. Смотрите выпуск № 12
Чтобы начать работу с Chat-with-your-doc , следуйте этим шагам:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docСоздать виртуальную среду:
python3 -m venv .venv
source .venv/bin/activateУстановите разделение:
pip install -r requirements.txtВ этом проекте мы поддерживаем как API от OpenAI и Azure Open Service. Есть некоторые переменные среды, которые являются общими для двух API, в то время как некоторые из них уникальны. В следующей таблице перечислены все, которые поддерживают Env Vars:
| Переменные среды | Azure Openai Service | Openai |
|---|---|---|
| Openai_api_base | ✅ | |
| Openai_api_key | ✅ | ✅ |
| Openai_gpt_deployment_name | ✅ | |
| Openai_embedding_deployment_name | ✅ | ✅ |
| CHAT_MODEL_NAME | ✅ | |
| Request_timeout | ✅ | ✅ |
| Vectordb_path | ✅ | ✅ |
| Температура | ✅ | ✅ |
| Chunk_size | ✅ | ✅ |
| Chunk_overlap | ✅ | ✅ |
.env в корневом DIR и установите переменные среды в файле: OPENAI_API_BASE=https://your-endpoint.openai.azure.com
OPENAI_API_KEY=your-key-here
OPENAI_GPT_DEPLOYMENT_NAME=your-gpt-deployment-name
OPENAI_EMBEDDING_DEPLOYMENT_NAME=your-embedding-deployment-name
Вот где вы можете найти имена развертывания для GPT и встраивать: 
.env в корневом DIR и установите переменную среды в файле: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
Это инициализирует приложение на основе Streamlit и откроет пользовательский интерфейс в вашем веб -браузере по умолчанию. Теперь вы можете загрузить документ, чтобы создать базу знаний и начать разговор с ним.
$ streamlit run chat_web_st.py --server.address ' 0.0.0.0 '
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.
You can now view your Streamlit app in your browser.
URL: http://0.0.0.0:8501 ` ` `Обратите внимание, что предыдущий веб -интерфейс, созданный с использованием Gradio, устарел и больше не поддерживается. Вы можете найти код в файле Chat_web.py.
Приложение CLI создано для поддержки как ingest , так и команд chat . Библиотека Python typer используется для создания интерфейса командной строки.
Эта команда будет принимать документы в качестве входных данных, разделить тексты, генерировать вставки и хранить в векторном магазине FAISS . Векторный магазин будет хранить локально для последующего использования для чата.

Например, если вы хотите поместить все PDF -файлы в каталог в один векторный магазин с именем surface , вы можете запустить:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfaceОбратите внимание, что путь должен быть заключен с двойными кавычками, чтобы избежать расширения оболочки.
Эта команда начнет интерактивный чат с документами в качестве внешней базы знаний в векторном магазине. Вы можете выбрать, какую базу знаний загружать для чата.

В каталоге Data/Source_document были предоставлены два образца документа о поверхности и уже проглатываны в index векторного хранилища по умолчанию, сохраненный в данных/Vector_store. Вы можете запустить следующую команду, чтобы начать чат с документами:
$ python chat_cli.py chatИли вы можете указать векторный магазин для загрузки для чата:
$ python chat_cli.py chat --name surface Langchain используется, чтобы быстро построить рабочий процесс, взаимодействующий с Azure GPT-4. ConversationalRetrievalChain используется в этом конкретном случае использования для поддержки истории чата. Вы можете обратиться к этой ссылке для более подробной информации.
Для chaintype , по умолчанию используется stuff . Для получения более подробной информации, пожалуйста, обратитесь к этой ссылке
chat-with-your-doc выпускается по лицензии MIT. Смотрите файл LICENSE для получения более подробной информации.