Rumah >pembangunan bahagian belakang >Tutorial Python >Membuat chatbot dengan pengambilan semula kontekstual menggunakan cohere command-r dan streamlit

Membuat chatbot dengan pengambilan semula kontekstual menggunakan cohere command-r dan streamlit

Linda Hamilton
Linda Hamiltonasal
2025-01-27 06:10:09392semak imbas

Creating a chatbot with contextual retrieval using Cohere command-r and Streamlit

Gambaran keseluruhan projek

Chatish adalah aplikasi rangkaian Streamlit yang inovatif, yang menunjukkan ciri -ciri kuat menggunakan model bahasa besar (terutamanya model perintah C Cohere) untuk pengambilan semula konteks. Projek ini menunjukkan bagaimana kecerdasan buatan moden mengubah kaedah interaksi dokumen melalui dialog pintar, konteks yang berpengalaman.

komponen seni bina

Aplikasi ini dibina di sekitar empat modul Python utama:

app.py

: Titik masuk aplikasi utama
  1. chat_manager.py : mengurus interaksi sembang
  2. cohere_client.py
  3. : rawatan interaksi AI file_handler.py
  4. : memproses dokumen yang dimuat naik
  5. rajah seni bina aplikasi
  6. butiran pelaksanaan utama
Strategi Pemprosesan Fail

Kelas FileHandler menunjukkan kaedah pemprosesan dokumen yang fleksibel:
<code>graph TD
    A[用户界面 - Streamlit] --> B[文件上传]
    A --> C[聊天输入]
    B --> D[文件处理器]
    C --> E[聊天管理器]
    D --> F[Cohere 客户端]
    E --> F
    F --> G[AI 响应生成]
    G --> A</code>

Projek Peringatan Pintar

Cohereclient membina peringatan persepsi konteks:

Pengurusan Dialog

Pengurusan berbual termasuk pengesanan kecerdasan sejarah:
<code class="language-python">def process_file(self, uploaded_file):
    if uploaded_file.type == "application/pdf":
        return self.extract_text_from_pdf(uploaded_file)
    else:
        # 可扩展以支持未来的文件类型
        return uploaded_file.read().decode()</code>

Cabaran Teknikal yang Diselesaikan

<code class="language-python">def build_prompt(self, user_input, context=None):
    context_str = f"{context}\n\n" if context else ""
    return (
        f"{context_str}"
        f"问题:{user_input}\n"
        f"除非被告知要详细说明,否则请直接给出答案,并使用可用的指标和历史数据。"
    )</code>

Pengambilan Budaya

: Secara dinamik mengintegrasikan konteks dokumen muat naik

ketahanan sesi
<code class="language-python">def chat(self, user_input, context=None):
    # 保持对话历史记录
    self.conversation_history.append({"role": "user", "content": user_input})

    # 限制历史记录以防止上下文溢出
    if len(self.conversation_history) > 10:
        self.conversation_history = self.conversation_history[-10:]</code>
: Pastikan status sesi

respons streaming : respons AI real -time menghasilkan

  1. Teknologi Stack
  2. kerangka web : Streamlit
  3. integrasi ai
  4. : cohere command r Pemprosesan Dokumen
  5. : PYPDF2

bahasa : python 3.9

    Langkah berjaga -jaga prestasi
  • Sekatan token
  • : boleh dikonfigurasi oleh parameter
  • kawalan suhu
  • : kreativiti tindak balas melalui pelarasan suhu fleksibiliti model
  • : anda boleh menukar model dengan mudah dalam konfigurasi
  • Roadmap Masa Depan

rawatan ralat yang dipertingkatkan

menyokong jenis fail lain
  • konteks lanjutan dibahagikan kepada blok Analisis Emosi Bersepadu max_tokens
  • Langkah berjaga -jaga untuk penempatan
  • Keperluan
  • cepat mula
Pertimbangan Keselamatan dan Etika

Perlindungan Kunci API
  1. Amaran pengguna yang jelas mengenai Hallucinations AI
  2. Pengurusan Konteks Telus
  3. Kesimpulan
Chatish mewakili pelaksanaan praktikal interaksi AI konteks.

mata utama

seni bina modular, berskala

Integrasi Konteks Pintar
<code>cohere==5.13.11
streamlit==1.41.1
PyPDF2==3.0.1</code>

Pengalaman pengguna yang dipermudahkan

<code class="language-bash"># 创建虚拟环境
python3 -m venv chatish_env

# 激活环境
source chatish_env/bin/activate

# 安装依赖项
pip install -r requirements.txt

# 运行应用程序
streamlit run app.py</code>

Eksplorasi, Eksperimen, Extension! github Warehouse

Atas ialah kandungan terperinci Membuat chatbot dengan pengambilan semula kontekstual menggunakan cohere command-r dan streamlit. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn