chat-with-your-doc es una aplicación de demostración que aprovecha las capacidades de ChatGPT/GPT-4 y Langchain para permitir a los usuarios chatear con sus documentos. Este repositorio aloja la base de código, las instrucciones y los recursos necesarios para configurar y ejecutar la aplicación.
El objetivo principal de este proyecto es simplificar la interacción con los documentos y extraer información valiosa con el uso del lenguaje natural. Este proyecto se construye con Langchain y GPT-4/CHATGPT para ofrecer una experiencia de conversación suave y natural al usuario, con soporte tanto para Azure OpenAI Services como para OpenAI

Azure OpenAI Services y OpenAI
Sugerir para instalar en Ubuntu en lugar de CentOS/Debian. Ver número #12
Para comenzar con Chat-with-your-doc , siga estos pasos:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docCrear entorno virtual:
python3 -m venv .venv
source .venv/bin/activateInstalar Defenancías:
pip install -r requirements.txtEn este proyecto, estamos apoyando tanto la API de OpenAI como el servicio de Azure Operai. Hay algunas variables ambientales que son comunes para las dos API, mientras que algunas son únicas. La siguiente tabla enumera todos los Vars Env que son compatibles:
| Variables de entorno | Servicio Azure OpenAI | Opadai |
|---|---|---|
| OPERAI_API_BASE | ✅ | |
| OPERAI_API_KEY | ✅ | ✅ |
| OPERAI_GPT_DEPLOYMENT_NAME | ✅ | |
| OpenAI_embedding_Deployment_Name | ✅ | ✅ |
| Chat_model_name | ✅ | |
| Request_timeout | ✅ | ✅ |
| Vectordb_path | ✅ | ✅ |
| TEMPERATURA | ✅ | ✅ |
| Chunk_size | ✅ | ✅ |
| Chunk_overlap | ✅ | ✅ |
.env en la raíz Dir y establezca las variables de entorno en el archivo: 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
Aquí es donde puede encontrar los nombres de implementación para GPT e incrustación: 
.env en el Dir Root y establezca la variable de entorno en el archivo: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
Esto inicializará la aplicación en función de Streamlit y abrirá la interfaz de usuario en su navegador web predeterminado. Ahora puede cargar un documento para crear una base de conocimiento y comenzar una conversación con él.
$ 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 ` ` `Tenga en cuenta que la interfaz de usuario web anterior construida con Gradio está en desuso y ya no se mantiene. Puede encontrar el código en el archivo chat_web.py.
La aplicación CLI está creada para admitir comandos ingest y chat . Python Library typer se usa para construir la interfaz de línea de comandos.
Este comando tomaría los documentos como entrada, dividiría los textos, generaría los incrustaciones y almacenaría en una tienda FAISS . La tienda Vector se almacenaría localmente para más tarde para chat.

Por ejemplo, si desea poner todos los PDF en el directorio en una sola tienda vectorial llamada surface , podría ejecutar:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfaceTenga en cuenta que la ruta debe estar encerrada con cotizaciones dobles para evitar la expansión de la concha.
Este comando comenzaría un chat interactivo, con documentos como una base de conocimiento externa en una tienda vectorial. Puede elegir qué base de conocimiento cargar para chat.

Se han proporcionado dos documentos de muestra sobre la superficie en el directorio Data/Source_Document y ya se ingirieron en el index de almacenamiento vectorial predeterminado, almacenado en Data/Vector_store. Puede ejecutar el siguiente comando para comenzar un chat con los documentos:
$ python chat_cli.py chatO puede especificar la tienda Vector para cargar para el chat:
$ python chat_cli.py chat --name surface Langchain se aprovecha para construir rápidamente un flujo de trabajo que interactúa con Azure GPT-4. ConversationalRetrievalChain se usa en este caso de uso particular para apoyar el historial de chat. Puede consultar este enlace para obtener más detalles.
Para chaintype , se usan stuff por defecto. Para obtener más detalles, consulte este enlace
chat-with-your-doc se lanza bajo la licencia MIT. Consulte el archivo LICENSE para obtener más detalles.