語言
1.0.0
筆記
工作正在進行中。
Lugha 來自斯瓦希里語,意思是“語言”,是一個 PHP 生成式 AI 框架,提供了一種與各種 AI 提供者互動的簡單方法。主要想法是為 AI 模型提供一個與提供者無關的統一 API,從而更容易在提供者之間切換。
該專案深受LangChain和LLPhant的啟發,專為聊天機器人、基於RAG(檢索增強生成)的應用程式而設計,整合了嵌入、完成和重新排序模型。
支援的提供者:
提供者 | 關聯 | 特徵 |
---|---|---|
開放人工智慧 | openai.com | 完成、嵌入 |
米斯特拉爾 | 米斯特拉爾.ai | 完成、嵌入 |
Google人工智慧 | 完成、嵌入 | |
GitHub | github.com | 完成、嵌入 |
人擇 | 人類網 | 完成 |
航行者.ai | 愛航 | 嵌入、重新排名 |
奧拉瑪 | olama.com | 完成、嵌入 |
composer require devscast/lugha
嵌入是一種單字表示形式,允許具有相似含義的單字具有相似的表示形式。它們可用於查找單字、片語或句子之間的相似性。對於文件分類、聚類和資訊檢索很有用。
$ client = ClientFactory :: create ( Provider :: GOOGLE );
$ embeddings = $ client -> embeddings (
prompt: ' Hello, world! ' ,
config: new EmbeddingsConfig (
model: ' text-embedding-004 ' ,
dimensions: 512
)
)-> embedding ;
完成模型旨在根據輸入提示產生類似人類的文字。
$ 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 ;
重新排序模型旨在根據輸入提示對文件清單進行重新排序。對於搜尋引擎、推薦系統和資訊檢索很有用。
$ 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 ;