chat-with-your-doc是一個演示應用程序,它利用Chatgpt/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在這個項目中,我們正在支持OpenAI和Azure OpenAI服務的API。有一些環境變量對於兩個API來說是常見的,而有些則是唯一的。下表列出了支持的所有env var:
| 環境變量 | Azure Openai服務 | 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並在文件中設置環境變量: 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並在文件中設置環境變量: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
這將基於Streamlit的應用程序初始化應用程序,並在默認Web瀏覽器中打開用戶界面。現在,您可以上傳文檔以創建知識庫並開始對其進行對話。
$ 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構建的Web UI已棄用,不再維護。您可以在chat_web.py文件中找到代碼。
CLI應用程序旨在支持ingest和chat命令。 Python Library typer用於構建命令行接口。
該命令將文檔作為輸入,將文本分開,生成嵌入並存儲在矢量商店FAISS中。矢量商店將在本地存儲,以供以後用於聊天。

例如,如果要將所有PDF在目錄中放入一個名為surface的一個矢量存儲中,則可以運行:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surface請注意,該路徑應用雙引號封閉,以避免外殼擴展。
此命令將啟動交互式聊天,文檔作為向量存儲中的外部知識庫。您可以選擇要加載的知識庫進行聊天。

數據/源_document目錄中已提供了有關Surface的兩個示例文檔,並已將存儲在數據/vector_store中的默認向量存儲index中攝入。您可以運行以下命令與文檔聊天:
$ 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文件。