Jadual Kandungan
Persekitaran Maya
Pasang Ketergantungan
Cahaya Rantai Ujian
Permulaan Git
Penciptaan Projek Upsun
Tatarajah
Pengerahan
Penciptaan Penolong
Muat Naik Kandungan
Logik Penolong (app.py)
Penciptaan Cawangan
Penciptaan dan Lekapan Folder
Kemas Kini app.py
Persediaan Pangkalan Data
Logik Pengesahan (app.py)
Rumah pembangunan bahagian belakang Tutorial Python Eksperimen dengan antara muka AI Chainlit dengan RAG pada Upsun

Eksperimen dengan antara muka AI Chainlit dengan RAG pada Upsun

Jan 21, 2025 am 12:14 AM

Chainlit: Rangka Kerja AI Perbualan Boleh Skala

Chainlit ialah rangka kerja Python tak segerak sumber terbuka yang direka untuk membina aplikasi AI perbualan yang teguh dan berskala. Ia menawarkan asas yang fleksibel, membolehkan pembangun menyepadukan API luaran, logik tersuai dan model tempatan dengan lancar.

Experiment with Chainlit AI interface with RAG on Upsun

Tutorial ini menunjukkan dua pelaksanaan Retrieval Augmented Generation (RAG) dalam Chainlit:

  1. Memanfaatkan Pembantu OpenAI dengan dokumen yang dimuat naik.
  2. Menggunakan llama_index dengan folder dokumen setempat.

Persediaan Rantaian Tempatan

Persekitaran Maya

Buat persekitaran maya:

mkdir chainlit && cd chainlit
python3 -m venv venv
source venv/bin/activate
Salin selepas log masuk
Salin selepas log masuk

Pasang Ketergantungan

Pasang pakej yang diperlukan dan simpan kebergantungan:

pip install chainlit
pip install llama_index  # For implementation #2
pip install openai
pip freeze > requirements.txt
Salin selepas log masuk
Salin selepas log masuk

Cahaya Rantai Ujian

Mulakan Chainlit:

chainlit hello
Salin selepas log masuk

Akses pemegang tempat di https://www.php.cn/link/2674cea93e3214abce13e072a2dc2ca5

Experiment with Chainlit AI interface with RAG on Upsun

Pengedaran Upsun

Permulaan Git

Memulakan repositori Git:

git init .
Salin selepas log masuk

Buat fail .gitignore:

<code>.env
database/**
data/**
storage/**
.chainlit
venv
__pycache__</code>
Salin selepas log masuk

Penciptaan Projek Upsun

Buat projek Upsun menggunakan CLI (ikut gesaan). Upsun akan mengkonfigurasi repositori jauh secara automatik.

Tatarajah

Contoh konfigurasi Upsun untuk Chainlit:

applications:
  chainlit:
    source:
      root: "/"
    type: "python:3.11"
    mounts:
      "/database":
        source: "storage"
        source_path: "database"
      ".files":
        source: "storage"
        source_path: "files"
      "__pycache__":
        source: "storage"
        source_path: "pycache"
      ".chainlit":
        source: "storage"
        source_path: ".chainlit"
    web:
      commands:
        start: "chainlit run app.py --port $PORT --host 0.0.0.0"
      upstream:
        socket_family: tcp
      locations:
        "/":
          passthru: true
        "/public":
          passthru: true
    build:
      flavor: none
    hooks:
      build: |
        set -eux
        pip install -r requirements.txt
      deploy: |
        set -eux
      # post_deploy: |
routes:
  "https://{default}/":
    type: upstream
    upstream: "chainlit:http"
  "https://www.{default}":
    type: redirect
    to: "https://{default}/"
Salin selepas log masuk

Tetapkan OPENAI_API_KEY pembolehubah persekitaran melalui Upsun CLI:

upsun variable:create env:OPENAI_API_KEY --value=sk-proj[...]
Salin selepas log masuk

Pengerahan

Komit dan gunakan:

git add .
git commit -m "First chainlit example"
upsun push
Salin selepas log masuk

Semak status penempatan. Penggunaan yang berjaya akan menunjukkan Chainlit berjalan pada persekitaran utama anda.

Experiment with Chainlit AI interface with RAG on Upsun

Pelaksanaan 1: Pembantu OpenAI & Fail Dimuat Naik

Pelaksanaan ini menggunakan pembantu OpenAI untuk memproses dokumen yang dimuat naik.

Penciptaan Penolong

Buat pembantu OpenAI baharu pada Platform OpenAI. Tetapkan arahan sistem, pilih model (dengan format respons teks) dan pastikan suhu rendah (cth., 0.10). Salin ID pembantu (asst_[xxx]) dan tetapkannya sebagai pembolehubah persekitaran:

upsun variable:create env:OPENAI_ASSISTANT_ID --value=asst_[...]
Salin selepas log masuk

Muat Naik Kandungan

Muat naik dokumen anda (Markdown diutamakan) kepada pembantu. OpenAI akan mencipta kedai vektor.

Experiment with Chainlit AI interface with RAG on Upsun

Experiment with Chainlit AI interface with RAG on Upsun

Logik Penolong (app.py)

Ganti app.py kandungan dengan kod yang disediakan. Bahagian penting: @cl.on_chat_start mencipta urutan OpenAI baharu dan @cl.on_message menghantar mesej pengguna ke urutan dan menstrimkan respons.

Komit dan gunakan perubahan. Uji pembantu.

Experiment with Chainlit AI interface with RAG on Upsun

Pelaksanaan 2: OpenAI llama_index

Pelaksanaan ini menggunakan llama_index untuk pengurusan pengetahuan tempatan dan OpenAI untuk penjanaan respons.

Penciptaan Cawangan

Buat cawangan baharu:

mkdir chainlit && cd chainlit
python3 -m venv venv
source venv/bin/activate
Salin selepas log masuk
Salin selepas log masuk

Penciptaan dan Lekapan Folder

Buat folder data dan storage. Tambahkan pelekap pada konfigurasi Upsun.

Kemas Kini app.py

Kemas kini app.py dengan kod llama_index yang disediakan. Kod ini memuatkan dokumen, mencipta VectorStoreIndex dan menggunakannya untuk menjawab pertanyaan melalui OpenAI.

Letakkan persekitaran baharu dan muat naik folder data. Uji aplikasi.

Experiment with Chainlit AI interface with RAG on Upsun

Bonus: Pengesahan

Tambahkan pengesahan menggunakan pangkalan data SQLite.

Persediaan Pangkalan Data

Buat folder database dan tambah pelekap pada konfigurasi Upsun. Cipta pembolehubah persekitaran untuk laluan pangkalan data:

pip install chainlit
pip install llama_index  # For implementation #2
pip install openai
pip freeze > requirements.txt
Salin selepas log masuk
Salin selepas log masuk

Logik Pengesahan (app.py)

Tambah logik pengesahan pada app.py menggunakan @cl.password_auth_callback. Ini menambah borang log masuk.

Buat skrip untuk menjana kata laluan cincang. Tambahkan pengguna ke pangkalan data (menggunakan kata laluan cincang). Gunakan pengesahan dan log masuk ujian.

Experiment with Chainlit AI interface with RAG on Upsun

Kesimpulan

Tutorial ini menunjukkan penggunaan aplikasi Chainlit pada Upsun dengan dua pelaksanaan dan pengesahan RAG. Seni bina yang fleksibel membolehkan pelbagai penyesuaian dan penyepaduan.

Atas ialah kandungan terperinci Eksperimen dengan antara muka AI Chainlit dengan RAG pada Upsun. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1671
14
Tutorial PHP
1276
29
Tutorial C#
1256
24
Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Python vs C: Lengkung pembelajaran dan kemudahan penggunaan Apr 19, 2025 am 12:20 AM

Python lebih mudah dipelajari dan digunakan, manakala C lebih kuat tetapi kompleks. 1. Sintaks Python adalah ringkas dan sesuai untuk pemula. Penaipan dinamik dan pengurusan memori automatik menjadikannya mudah digunakan, tetapi boleh menyebabkan kesilapan runtime. 2.C menyediakan kawalan peringkat rendah dan ciri-ciri canggih, sesuai untuk aplikasi berprestasi tinggi, tetapi mempunyai ambang pembelajaran yang tinggi dan memerlukan memori manual dan pengurusan keselamatan jenis.

Python dan Masa: Memanfaatkan masa belajar anda Python dan Masa: Memanfaatkan masa belajar anda Apr 14, 2025 am 12:02 AM

Untuk memaksimumkan kecekapan pembelajaran Python dalam masa yang terhad, anda boleh menggunakan modul, masa, dan modul Python. 1. Modul DateTime digunakan untuk merakam dan merancang masa pembelajaran. 2. Modul Masa membantu menetapkan kajian dan masa rehat. 3. Modul Jadual secara automatik mengatur tugas pembelajaran mingguan.

Python vs C: Meneroka Prestasi dan Kecekapan Python vs C: Meneroka Prestasi dan Kecekapan Apr 18, 2025 am 12:20 AM

Python lebih baik daripada C dalam kecekapan pembangunan, tetapi C lebih tinggi dalam prestasi pelaksanaan. 1. Sintaks ringkas Python dan perpustakaan yang kaya meningkatkan kecekapan pembangunan. 2. Ciri-ciri jenis kompilasi dan kawalan perkakasan meningkatkan prestasi pelaksanaan. Apabila membuat pilihan, anda perlu menimbang kelajuan pembangunan dan kecekapan pelaksanaan berdasarkan keperluan projek.

Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Pembelajaran Python: Adakah 2 jam kajian harian mencukupi? Apr 18, 2025 am 12:22 AM

Adakah cukup untuk belajar Python selama dua jam sehari? Ia bergantung pada matlamat dan kaedah pembelajaran anda. 1) Membangunkan pelan pembelajaran yang jelas, 2) Pilih sumber dan kaedah pembelajaran yang sesuai, 3) mengamalkan dan mengkaji semula dan menyatukan amalan tangan dan mengkaji semula dan menyatukan, dan anda secara beransur-ansur boleh menguasai pengetahuan asas dan fungsi lanjutan Python dalam tempoh ini.

Python vs C: Memahami perbezaan utama Python vs C: Memahami perbezaan utama Apr 21, 2025 am 12:18 AM

Python dan C masing -masing mempunyai kelebihan sendiri, dan pilihannya harus berdasarkan keperluan projek. 1) Python sesuai untuk pembangunan pesat dan pemprosesan data kerana sintaks ringkas dan menaip dinamik. 2) C sesuai untuk prestasi tinggi dan pengaturcaraan sistem kerana menaip statik dan pengurusan memori manual.

Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Yang merupakan sebahagian daripada Perpustakaan Standard Python: Senarai atau Array? Apr 27, 2025 am 12:03 AM

Pythonlistsarepartofthestandardlibrary, sementara

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Python untuk pengkomputeran saintifik: rupa terperinci Python untuk pengkomputeran saintifik: rupa terperinci Apr 19, 2025 am 12:15 AM

Aplikasi Python dalam pengkomputeran saintifik termasuk analisis data, pembelajaran mesin, simulasi berangka dan visualisasi. 1.Numpy menyediakan susunan pelbagai dimensi yang cekap dan fungsi matematik. 2. Scipy memanjangkan fungsi numpy dan menyediakan pengoptimuman dan alat algebra linear. 3. Pandas digunakan untuk pemprosesan dan analisis data. 4.Matplotlib digunakan untuk menghasilkan pelbagai graf dan hasil visual.

See all articles