言語
1.0.0
注記
作業中です。
スワヒリ語で「言語」を意味する Lugha は、さまざまな AI プロバイダーと対話するためのシンプルかつ簡単な方法を提供する PHP 生成 AI フレームワークです。主なアイデアは、AI モデルにプロバイダーに依存しない統合 API を提供し、プロバイダー間の切り替えを容易にすることです。
このプロジェクトは、LangChain と LLPhant から多大な影響を受けており、埋め込み、補完、および再ランキング モデルを統合したチャットボット、RAG (検索拡張生成) ベースのアプリケーション向けに設計されています。
サポートされているプロバイダー:
プロバイダー | リンク | 特徴 |
---|---|---|
OpenAI | openai.com | 補完、埋め込み |
ミストラル | ミストラル.ai | 補完、埋め込み |
グーグル | ai.google | 補完、埋め込み |
GitHub | github.com | 補完、埋め込み |
人間的 | anthropic.com | 完了 |
ボイジャー.ai | voyageai.com | 埋め込み、再ランキング |
オラマ | オラマ.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 ;