API LLM sekecil mungkin. Bangun antarmuka tanya jawab untuk konten Anda sendiri dalam beberapa menit. Menggunakan penyematan OpenAI, gpt-3.5 dan Faiss, melalui Langchain.
source.json
. Seharusnya terlihat seperti ini: [
{
"source" : " Reference to the source of your content. Typically a title. " ,
"url" : " URL for your source. This key is optional. " ,
"content" : " Your content as a single string. If there's a title or summary, put these first, separated by new lines. "
},
...
]
Lihat example.source.json
sebagai contoh.
pip install microllama
Dapatkan kunci API OpenAI dan tambahkan ke lingkungan, misalnya export OPENAI_API_KEY=sk-etc
. Perhatikan bahwa pengindeksan dan pembuatan kueri memerlukan kredit OpenAI, dan ini tidak gratis.
Jalankan server Anda dengan microllama
. Jika indeks pencarian vektor tidak ada, indeks tersebut akan dibuat dari source.json
Anda, dan disimpan.
Tanyakan dokumen Anda di /api/ask?pertanyaan Anda.
Microllama menyertakan web front-end opsional, yang dihasilkan dengan microllama make-front-end
. Perintah ini membuat satu file index.html
yang dapat Anda edit. Disajikan di /.
Microllama dikonfigurasi melalui variabel lingkungan, dengan default berikut:
OPENAI_API_KEY
: diperlukanFAISS_INDEX_PATH
: "faiss_index"SOURCE_JSON
: "sumber.json"MAX_RELATED_DOCUMENTS
: "5"EXTRA_CONTEXT
: "Jawab tidak lebih dari tiga kalimat. Jika jawaban tidak sesuai konteks, ucapkan 'Maaf, tidak ada jawaban untuk ini di sumber saya.'."UVICORN_HOST
: "0.0.0.0"UVICORN_PORT
: "8080" Buat Dockerfile dengan microllama make-dockerfile
. Kemudian:
Daftar akun Fly.io dan instal flyctl. Kemudian:
fly launch # answer no to Postgres, Redis and deploying now
fly secrets set OPENAI_API_KEY=sk-etc
fly deploy
gcloud run deploy --source . --set-env-vars= " OPENAI_API_KEY=sk-etc "
Untuk Cloud Run dan platform tanpa server lainnya, Anda harus membuat indeks FAISS pada waktu pembuatan container, untuk mengurangi waktu startup. Lihat dua baris komentar di Dockerfile
.
Anda juga dapat membuat perintah ini dengan microllama deploy
.
SpacyTextSplitter(chunk_size=700, chunk_overlap=200, separator=" ")