LLMFLEX adalah paket Python yang memungkinkan pengembang Python untuk bekerja dengan berbagai model bahasa besar (LLM) dan melakukan rekayasa cepat dengan antarmuka sederhana. Ini mendukung sumber daya gratis dan lokal alih-alih menggunakan API berbayar untuk mengembangkan solusi AI yang benar-benar lokal dan pribadi.
Ini menyediakan kelas untuk memuat model LLM, model embedding, dan database vektor untuk membuat aplikasi bertenaga LLM dengan teknik dan teknik rag cepat Anda sendiri. Dengan perintah One-Liner, Anda dapat memuat antarmuka chatbot untuk mengobrol dengan LLM atau melayani model sebagai OpenAI API juga.
Membuat lingkungan virtual sebelum menginstal paket sangat disarankan. Pastikan juga Anda telah menginstal Pytorch dan Llama-CPP-Python dengan metode instalasi yang benar sesuai dengan konfigurasi perangkat keras Anda sebelum menginstal LLMFLEX. Silakan kunjungi tautan yang disediakan untuk paket masing -masing untuk panduan instalasi yang lebih rinci.
Setelah Anda melakukan langkah -langkah di atas, Anda dapat dengan mudah menginstal llmflex dengan pip .
pip install llmflex
Anda juga dapat menginstal ExllAmAV2, AutoAwQ, dan AutogptQ jika Anda memiliki perangkat CUDA. Silakan kunjungi tautan yang disediakan untuk paket masing -masing untuk panduan instalasi yang lebih rinci.
Tidak seperti Langchain, Anda dapat membuat beberapa LLM dengan suhu yang berbeda, token baru maks, berhenti kata -kata dll. Dengan model mendasar yang sama tanpa memuat model beberapa kali menggunakan kelas LlmFactory . Ini bisa berguna saat Anda membuat agen Anda sendiri dengan tugas LLM yang berbeda yang membutuhkan konfigurasi yang berbeda.
Semua LLM yang dibuat dengan LlmFactory kompatibel dengan langchain, dan dapat diintegrasikan dengan mulus dalam kode Langchain yang ada. Semua kelas LLM adalah implementasi ulang beberapa kelas Langchain LLM yang mendukung streaming yang lebih efisien dan menghentikan manajemen kata-kata, semua dengan antarmuka terpadu.
Semua format model didukung, dan proses pemuatan semuanya ditangani di kelas LlmFactory , jadi itu hanya plug and play. Format yang Didukung:
BaseTool kelas dasar untuk membuat alat bertenaga LLM. Sebuah BrowserTool yang ditenagai oleh Duckduckgo diimplementasikan sebagai contoh.
Kelas Agent disediakan. Anda dapat melewati alat dan LLM Anda untuk menginisialisasi agen, setelah memberikan tugas kepada agen, agen akan menyelesaikan keajaiban untuk Anda dengan alat yang diberikan.
Kelas yang dibundel untuk menggunakan model embedding yang berisi model embedding dan splitter teks berbasis token menggunakan model embedding.
Memanfaatkan Toolkit Embedding dan Faiss, kelas FaissVectorDatabase dapat memungkinkan Anda untuk menyimpan dan mencari teks untuk tugas kain Anda.
Kelas memori obrolan untuk menyimpan memori obrolan di disk.
BaseChatMemory
Kelas memori tanpa menggunakan model embedding atau database vektor.
LongShortTermChatMemory
Kelas memori menggunakan FaissVectorDatabase yang mendasarinya untuk mempertahankan memori jangka panjang bersama dengan memori terbaru.
Kelas PromptTemplate diimplementasikan untuk memformat prompt Anda dengan format prompt yang berbeda untuk model dari berbagai sumber. Beberapa preset seperti Llama3 , ChatML , Vicuna , dan banyak lagi sudah diimplementasikan, tetapi Anda dapat selalu menambahkan template format cepat Anda sendiri.
Webapp yang streamlit disediakan untuk penggunaan chatbot AI lokal. Panggilan fungsi dan kain pada dokumen Anda sendiri didukung di Webapp. Anda juga dapat mengarahkan respons LLM dengan memberikan teks awal untuk respons.
Ini adalah bagaimana Anda dapat memulai dengan model pembuatan teks apa pun di Huggingface dengan mesin Anda.
from llmflex import LlmFactory
# Load the model from Huggingface
model = LlmFactory ( "TheBloke/OpenHermes-2.5-Mistral-7B-GGUF" )
# Create a llm
llm = model ( temperature = 0.7 , max_new_tokens = 512 )
# Use the LLM for your task
prompt = "Q: What is the colour of an apple? A:"
ans = llm . invoke ( prompt , stop = [ 'Q:' ])
print ( ans )
# Or if you prefer to generate the output with token streamming.
for token in llm . stream ( prompt , stop = [ 'Q:' ]):
print ( token , end = "" )Untuk memuat model embedding dan menggunakan database vektor:
from llmflex . Embeddings import HuggingfaceEmbeddingsToolkit
from llmflex . VectorDBs import FaissVectorDatabase
# Loading the embedding model toolkit
embeddings = HuggingfaceEmbeddingsToolkit ( model_id = "thenlper/gte-small" )
# Create a vector database
food = [ "Apple" , "Banana" , "Pork" ]
vectordb = FaissVectorDatabase . from_texts ( embeddings = embeddings , texts = food )
# Do semantic search on the vector database
print ( vectordb . search ( "Beef" )) Kelas BrowserTool diimplementasikan sebagai contoh untuk membangun alat dengan LLMFLEX. Alat ini menggunakan Duckduckgo secara default. Inilah cara Anda dapat menggunakannya:
from llmflex . Tools import BrowserTool
from llmflex . Rankers import FlashrankRanker
# Create a reranker
ranker = FlashrankRanker ()
# Create a broswer tool with the embeddings toolkit created earlier
tool = BrowserTool ( embeddings = embeddings , llm = llm , ranker = ranker )
# Run the tool
tool ( search_query = 'Install python' )Gunakan agen reaksi satu-shot untuk menjalani alur kerja yang lebih rumit.
from llmflex . Agents import Agent
agent = Agent ( llm = llm , tools = [ tool ], prompt_template = model . prompt_template )
agent . run ( "Do some research online to find out the latest trends about Generative AI." )Jika Anda hanya ingin GUI mulai mengobrol dengan model LLM Anda dengan memori jangka panjang dan jangka pendek, ketik perintah ini di terminal:
llmflex interfaceJika Anda ingin mengonfigurasi model LLM, model embedding, splitter teks, dan reranker, buat file konfigurasi dan memodifikasinya terlebih dahulu:
# Create a config file for the webapp
llmflex create-app-configSetelah memodifikasi file, jalankan yang berikut:
llmflex interface --config_dir chatbot_config.yamlAnda akan melihat frontend yang berinak, menggunakannya untuk mengobrol dengan model LLM.
Sekarang Anda dapat mengunggah file teks Anda untuk membuat basis pengetahuan dan berbicara tentang dokumen Anda dengan asisten AI Anda.
Untuk perincian lebih lanjut tentang cara mengkonfigurasi YAML Anda, silakan baca dokumentasi yang disediakan. 
Dokumentasi Python untuk semua kelas, metode, dan fungsi disediakan di direktori ./docs di repositori ini.
Proyek ini dilisensikan berdasarkan ketentuan lisensi MIT.