chat-with-your-doc adalah aplikasi demonstrasi yang memanfaatkan kemampuan ChatGPT/GPT-4 dan Langchain untuk memungkinkan pengguna mengobrol dengan dokumen mereka. Repositori ini meng -host basis kode, instruksi, dan sumber daya yang diperlukan untuk mengatur dan menjalankan aplikasi.
Tujuan utama dari proyek ini adalah untuk menyederhanakan interaksi dengan dokumen dan mengekstrak informasi berharga dengan menggunakan bahasa alami. Proyek ini dibangun menggunakan Langchain dan GPT-4/ChatGPT untuk memberikan pengalaman percakapan yang mulus dan alami kepada pengguna, dengan dukungan untuk Azure OpenAI Services dan OpenAI

Azure OpenAI Services dan OpenAI
Sarankan untuk menginstal di Ubuntu, bukan Centos/Debian. Lihat masalah #12
Untuk memulai dengan Chat-with-your-doc , ikuti langkah-langkah ini:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docBuat lingkungan virtual:
python3 -m venv .venv
source .venv/bin/activateInstal depenansi:
pip install -r requirements.txtDalam proyek ini kami mendukung API dari Openai dan Azure Openai Service. Ada beberapa variabel lingkungan yang umum untuk dua API sementara beberapa unik. Tabel berikut mencantumkan semua var vars yang didukung:
| Variabel Lingkungan | Layanan Openai Azure | Openai |
|---|---|---|
| Openai_api_base | ✅ | |
| Openai_api_key | ✅ | ✅ |
| Openai_gpt_deployment_name | ✅ | |
| Openai_embedding_deployment_name | ✅ | ✅ |
| Chat_model_name | ✅ | |
| Request_timeout | ✅ | ✅ |
| Vectorbb_path | ✅ | ✅ |
| SUHU | ✅ | ✅ |
| Chunk_size | ✅ | ✅ |
| Chunk_overlap | ✅ | ✅ |
.env di root dir dan atur variabel lingkungan dalam file: 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
Di sinilah Anda dapat menemukan nama penempatan untuk GPT dan embedding: 
.env di root dir dan atur variabel lingkungan dalam file: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
Ini akan menginisialisasi aplikasi berdasarkan Streamlit dan membuka antarmuka pengguna di browser web default Anda. Anda sekarang dapat mengunggah dokumen untuk membuat basis pengetahuan dan memulai percakapan dengannya.
$ 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 ` ` `Perhatikan bahwa UI Web sebelumnya yang dibangun menggunakan gradio sudah usang dan tidak lagi dipertahankan. Anda dapat menemukan kode di file chat_web.py.
Aplikasi CLI dibangun untuk mendukung perintah ingest dan chat . Perpustakaan Python typer digunakan untuk membangun antarmuka baris perintah.
Perintah ini akan mengambil dokumen sebagai input, membagi teks, menghasilkan embeddings dan menyimpan di toko vektor FAISS . Toko vektor akan disimpan secara lokal untuk kemudian digunakan untuk mengobrol.

Misalnya jika Anda ingin memasukkan semua PDF di direktori ke dalam satu toko vektor tunggal bernama surface , Anda dapat menjalankan:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfacePerhatikan bahwa jalur harus dilampirkan dengan kutipan ganda untuk menghindari ekspansi shell.
Perintah ini akan memulai obrolan interaktif, dengan dokumen sebagai basis pengetahuan eksternal di toko vektor. Anda dapat memilih basis pengetahuan mana yang akan dimuat untuk mengobrol.

Dua dokumen sampel tentang permukaan telah disediakan di Data/Source_Document Directory dan sudah dicerna ke dalam index toko vektor default, disimpan dalam data/vektor_store. Anda dapat menjalankan perintah berikut untuk memulai obrolan dengan dokumen:
$ python chat_cli.py chatAtau Anda bisa menentukan toko vektor untuk dimuat untuk obrolan:
$ python chat_cli.py chat --name surface Langchain dimanfaatkan untuk dengan cepat membangun alur kerja yang berinteraksi dengan Azure GPT-4. ConversationalRetrievalChain digunakan dalam kasus penggunaan khusus ini untuk mendukung riwayat obrolan. Anda dapat merujuk ke tautan ini untuk lebih detail.
Untuk chaintype , secara default stuff . Untuk detail lebih lanjut, silakan merujuk ke tautan ini
chat-with-your-doc dirilis di bawah lisensi MIT. Lihat file LICENSE untuk lebih jelasnya.