Catatan
Pekerjaan sedang berlangsung.
Lugha dari bahasa Swahili yang berarti "Bahasa" adalah Kerangka AI Generatif PHP yang menyediakan cara sederhana dan mudah untuk berinteraksi dengan berbagai penyedia AI. Ide utamanya adalah untuk menyediakan API agnostik penyedia terpadu untuk model AI, sehingga memudahkan peralihan antar penyedia.
Proyek ini sangat terinspirasi oleh LangChain dan LLPhant, dirancang untuk aplikasi berbasis Chatbot, RAG (Retrieval-Augmented Generation) dengan integrasi model Embeddings, Completion, dan Reranking.
penyedia yang didukung:
Penyedia | Link | Fitur |
---|---|---|
OpenAI | openai.com | Penyelesaian, Penyematan |
Mistral | mistral.ai | Penyelesaian, Penyematan |
ai.google | Penyelesaian, Penyematan | |
GitHub | github.com | Penyelesaian, Penyematan |
Antropis | antropik.com | Penyelesaian |
Voyager.ai | voyageai.com | Penyematan, Pemeringkatan Ulang |
Ollama | ollama.com | Penyelesaian, Penyematan |
composer require devscast/lugha
Embeddings adalah jenis representasi kata yang memungkinkan kata-kata dengan makna serupa memiliki representasi serupa. mereka dapat digunakan untuk menemukan kesamaan antara kata, frasa, atau kalimat. berguna untuk klasifikasi dokumen, pengelompokan, dan pengambilan informasi.
$ client = ClientFactory :: create ( Provider :: GOOGLE );
$ embeddings = $ client -> embeddings (
prompt: ' Hello, world! ' ,
config: new EmbeddingsConfig (
model: ' text-embedding-004 ' ,
dimensions: 512
)
)-> embedding ;
Model penyelesaian dirancang untuk menghasilkan teks mirip manusia berdasarkan perintah masukan.
$ client = ClientFactory :: create ( Provider :: OPENAI );
// from a prompt
$ completion = $ client -> completion (
input: ' Hello, world! ' ,
config: new CompletionConfig (
model: ' gpt-3.5-turbo ' ,
temperature: 0.5 ,
maxTokens: 100 ,
frequencyPenalty: 0.5 ,
presencePenalty: 0.5
)
)-> completion ;
// from a chat history
$ chat = $ client -> chat (
input: History :: fromMessages ([
new Message ( ' You are a chatbot, expert in philosophy ' , Role :: SYSTEM ),
new Message ( ' what is the meaning of life ? ' , Role :: USER )
]),
config: new ChatConfig (
model: ' gpt-4-turbo ' ,
temperature: 0.5 ,
maxTokens: 100 ,
frequencyPenalty: 0.5 ,
presencePenalty: 0.5
)
)-> completion ;
Model pemeringkatan ulang dirancang untuk memberi peringkat ulang daftar dokumen berdasarkan perintah masukan. berguna untuk mesin pencari, sistem rekomendasi, dan pencarian informasi.
$ client = ClientFactory :: create ( Provider :: VOYAGER );
$ ranking = $ client -> reranking (
prompt: ' What is the meaning of life ? ' ,
documents: [
new Document ( ' The best way to predict the future is to create it. ' )
new Document ( ' The only way to do great work is to love what you do. ' )
new Document ( ' Life is short, smile while you still have teeth. ' ),
new Document ( ' The best time to plant a tree was 20 years ago. The second best time is now. ' )
],
config: new RerankingConfig (
model: ' voyager-1.0 ' ,
topK: 3
)
)-> documents ;