Pencarian bertenaga Retrieval Augmented Generation (RAG).
txtchat membangun aplikasi pencarian yang didukung model bahasa dan retrieval augmented generation (RAG).
Munculnya model bahasa besar (LLM) telah mendorong konsep ulang pencarian. Pencarian yang didukung LLM dapat berbuat lebih banyak. Daripada hanya memberikan hasil, penelusuran kini dapat mengekstrak, meringkas, menerjemahkan, dan mengubah konten menjadi jawaban.
txtchat menambahkan serangkaian agen cerdas yang tersedia untuk diintegrasikan dengan platform perpesanan. Agen atau persona ini dikaitkan dengan akun otomatis dan merespons pesan dengan respons yang didukung AI. Alur kerja dapat menggunakan model bahasa besar (LLM), model kecil, atau keduanya.
txtchat dibuat dengan Python 3.8+ dan txtai.
Cara termudah untuk menginstal adalah melalui pip dan PyPI
pip install txtchat
Anda juga dapat menginstal txtchat langsung dari GitHub. Disarankan menggunakan Lingkungan Virtual Python.
pip install git+https://github.com/neuml/txtchat
Python 3.8+ didukung
Lihat tautan ini untuk membantu menyelesaikan masalah penginstalan khusus lingkungan.
txtchat dirancang untuk dan akan mendukung sejumlah platform perpesanan. Saat ini, Rocket.Chat adalah satu-satunya platform yang didukung karena kemampuannya untuk dipasang di lingkungan lokal dan berlisensi MIT. Cara termudah untuk memulai instance Rocket.Chat lokal adalah dengan Docker Compose. Lihat petunjuk ini untuk informasi lebih lanjut.
Memperluas txtchat ke platform tambahan hanya memerlukan subkelas Agen baru untuk platform tersebut.
Persona adalah kombinasi agen obrolan dan alur kerja yang menentukan jenis respons. Setiap agen terikat pada akun di platform perpesanan. Alur kerja Persona bersifat agnostik platform perpesanan. Repositori txtchat-persona memiliki daftar alur kerja persona standar.
Lihat direktori contoh untuk konfigurasi persona dan alur kerja tambahan.
Perintah berikut menunjukkan cara memulai persona txtchat.
# Set to server URL, this is default when running local
export AGENT_URL=ws://localhost:3000/websocket
export AGENT_USERNAME=<Rocket Chat User>
export AGENT_PASSWORD=<Rocket Chat User Password>
# YAML is loaded from Hugging Face Hub, can also reference local path
python -m txtchat.agent wikitalk.yml
Ingin menambahkan persona baru? Cukup buat alur kerja txtai dan simpan ke file YAML.
Berikut ini adalah daftar video YouTube yang menunjukkan cara kerja txtchat. Video-video ini menjalankan serangkaian pertanyaan dengan persona Wikitalk. Wikitalk adalah kombinasi indeks penyematan Wikipedia dan perintah LLM untuk menjawab pertanyaan.
Setiap jawaban menunjukkan referensi terkait dari mana data tersebut berasal. Wikitalk akan mengatakan "Saya tidak punya data tentang itu" ketika tidak ada jawabannya.
Percakapan dengan Wikitalk tentang sejarah.
Bicara tentang olahraga.
Pertanyaan seni dan budaya.
Mari kita kuis Wikitalk tentang sains.
Tidak semua alur kerja memerlukan LLM. Ada banyak model kecil yang tersedia untuk melakukan tugas tertentu. Persona Ringkasan hanya membaca URL masukan dan merangkum teksnya.
Seperti persona ringkasan, Mr. French adalah persona sederhana yang menerjemahkan teks masukan ke bahasa Prancis.
Ingin menghubungkan txtchat ke data Anda sendiri? Yang perlu Anda lakukan hanyalah membuat alur kerja txtai. Mari kita lihat contoh pembuatan alur kerja pengindeksan Hacker News dan persona txtchat.
Pertama, kita akan menentukan alur kerja pengindeksan dan membuat indeks. Hal ini dilakukan dengan alur kerja untuk kenyamanan. Alternatifnya, bisa berupa program Python yang membuat indeks embeddings dari kumpulan data Anda. Ada lebih dari 50 contoh buku catatan yang mencakup berbagai cara untuk memasukkan data ke dalam txtai. Ada juga contoh alur kerja yang dapat diunduh di Hugging Face Space ini.
path : /tmp/hn
embeddings :
path : sentence-transformers/all-MiniLM-L6-v2
content : true
tabular :
idcolumn : url
textcolumns :
- title
workflow :
index :
tasks :
- batch : false
extract :
- hits
method : get
params :
tags : null
task : service
url : https://hn.algolia.com/api/v1/search?hitsPerPage=50
- action : tabular
- action : index
writable : true
Alur kerja ini mem-parsing feed halaman depan Hacker News dan membuat indeks embeddings di jalur /tmp/hn
.
Jalankan alur kerja dengan yang berikut ini.
from txtai . app import Application
app = Application ( "index.yml" )
list ( app . workflow ( "index" , [ "front_page" ]))
Sekarang kita akan menentukan alur kerja obrolan dan menjalankannya sebagai agen.
path : /tmp/hn
writable : false
extractor :
path : google/flan-t5-xl
output : flatten
workflow :
search :
tasks :
- task : txtchat.task.Question
action : extractor
python -m txtchat.agent query.yml
Mari kita bicara dengan Berita Peretas!
Seperti yang Anda lihat, Hacker News adalah sumber data yang sangat berpendirian tinggi!
Mendapatkan jawaban itu bagus, tetapi bisa mendapatkan jawaban berdasarkan dari mana asalnya itu lebih bagus. Mari buat alur kerja yang menambahkan tautan referensi ke setiap jawaban.
path : /tmp/hn
writable : false
extractor :
path : google/flan-t5-xl
output : reference
workflow :
search :
tasks :
- task : txtchat.task.Question
action : extractor
- task : txtchat.task.Answer