chat-with-your-doc est une application de démonstration qui exploite les capacités de Chatgpt / GPT-4 et de Langchain pour permettre aux utilisateurs de discuter avec leurs documents. Ce référentiel héberge la base de code, les instructions et les ressources nécessaires pour configurer et exécuter l'application.
Le principal objectif de ce projet est de simplifier l'interaction avec les documents et d'extraire des informations précieuses en utilisant le langage naturel. Ce projet est construit à l'aide de Langchain et GPT-4 / Chatgpt pour offrir une expérience conversationnelle fluide et naturelle à l'utilisateur, avec le support pour Azure OpenAI Services et OpenAI

Azure OpenAI Services et OpenAI
Suggérer d'installer sur Ubuntu au lieu de Centos / Debian. Voir le numéro n ° 12
Pour commencer avec Chat-with-your-doc , suivez ces étapes:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docCréer un environnement virtuel:
python3 -m venv .venv
source .venv/bin/activateInstaller des dépinanciens:
pip install -r requirements.txtDans ce projet, nous soutenons à la fois l'API d'Openai et Azure Openai Service. Il y a certaines variables EnvironMnet qui sont communes pour les deux API tandis que certaines sont uniques. Le tableau suivant répertorie tous les vars entendus qui sont pris en charge:
| Variables d'environnement | Service Azure Openai | Openai |
|---|---|---|
| Openai_api_base | ✅ | |
| Openai_api_key | ✅ | ✅ |
| Openai_gpt_deployment_name | ✅ | |
| Openai_embedding_deployment_name | ✅ | ✅ |
| Chat_model_name | ✅ | |
| Request_timeout | ✅ | ✅ |
| Vectordb_path | ✅ | ✅ |
| TEMPÉRATURE | ✅ | ✅ |
| Chunk_size | ✅ | ✅ |
| Chunk_overlap | ✅ | ✅ |
.env dans le Dir racine et définir les variables d'environnement dans le fichier: 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
Voici où vous pouvez trouver les noms de déploiement pour GPT et intégrer: 
.env dans le Dir racine et définir la variable d'environnement dans le fichier: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
Cela initialisera l'application en fonction de Streamlit et ouvrira l'interface utilisateur dans votre navigateur Web par défaut. Vous pouvez maintenant télécharger un document pour créer une base de connaissances et commencer une conversation avec.
$ 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 ` ` `Notez que l'interface utilisateur Web précédente construite à l'aide de Gradio est obsolète et n'est plus maintenue. Vous pouvez trouver le code dans le fichier Chat_web.py.
L'application CLI est conçue pour prendre en charge les commandes ingest et chat . Python Library typer est utilisé pour créer l'interface de ligne de commande.
Cette commande prendrait les documents en entrée, diviserait les textes, générerait les intégres et stockerait dans un magasin vectoriel FAISS Le magasin vectoriel serait stocké localement pour plus tard pour le chat.

Par exemple, si vous souhaitez mettre tous les PDF dans le répertoire dans un seul magasin vectoriel nommé surface , vous pouvez courir:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfaceNotez que le chemin doit être enfermé avec des citations doubles pour éviter l'expansion de la coquille.
Cette commande démarrerait un chat interactif, avec des documents comme base de connaissances externes dans un magasin vectoriel. Vous pouvez choisir la base de connaissances à charger pour le chat.

Deux exemples d'échantillons de documents sur la surface ont été fournis dans le répertoire DATA / Source_Document et déjà ingéré dans l' index du magasin de vecteur par défaut, stocké dans les données / vector_store. Vous pouvez exécuter la commande suivante pour commencer une conversation avec les documents:
$ python chat_cli.py chatOu vous pouvez spécifier le magasin vectoriel à charger pour le chat:
$ python chat_cli.py chat --name surface Langchain est exploité pour construire rapidement un flux de travail en interaction avec Azure GPT-4. ConversationalRetrievalChain est utilisé dans ce cas d'utilisation particulier pour soutenir l'historique du chat. Vous pouvez vous référer à ce lien pour plus de détails.
Pour chaintype , par défaut, stuff sont utilisées. Pour plus de détails, veuillez vous référer à ce lien
chat-with-your-doc est libéré sous la licence MIT. Voir le fichier LICENSE pour plus de détails.