Notiz
In Arbeit.
Lugha aus Suaheli bedeutet „Sprache“ und ist ein PHP Generative AI Framework, das eine einfache und unkomplizierte Möglichkeit bietet, mit verschiedenen KI-Anbietern zu interagieren. Die Hauptidee besteht darin, eine einheitliche anbieterunabhängige API für KI-Modelle bereitzustellen, die den Wechsel zwischen Anbietern erleichtert.
Dieses Projekt ist stark von LangChain und LLPhant inspiriert und wurde für Chatbot-, RAG-basierte (Retrieval-Augmented Generation)-Anwendungen mit Integration von Einbettungs-, Vervollständigungs- und Reranking-Modellen entwickelt.
Unterstützte Anbieter:
Anbieter | Link | Merkmale |
---|---|---|
OpenAI | openai.com | Fertigstellung, Einbettungen |
Mistral | mistral.ai | Fertigstellung, Einbettungen |
ai.google | Fertigstellung, Einbettungen | |
GitHub | github.com | Fertigstellung, Einbettungen |
Anthropisch | anthropic.com | Fertigstellung |
Voyager.ai | voyageai.com | Einbettungen, Neuranking |
Ollama | ollama.com | Fertigstellung, Einbettungen |
composer require devscast/lugha
Einbettungen sind eine Art Wortdarstellung, die es ermöglicht, dass Wörter mit ähnlicher Bedeutung eine ähnliche Darstellung erhalten. Sie können verwendet werden, um die Ähnlichkeit zwischen Wörtern, Phrasen oder Sätzen zu finden. nützlich für die Klassifizierung, Clusterung und Informationsabfrage von Dokumenten.
$ client = ClientFactory :: create ( Provider :: GOOGLE );
$ embeddings = $ client -> embeddings (
prompt: ' Hello, world! ' ,
config: new EmbeddingsConfig (
model: ' text-embedding-004 ' ,
dimensions: 512
)
)-> embedding ;
Vervollständigungsmodelle sollen basierend auf der Eingabeaufforderung menschenähnlichen Text generieren.
$ 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 ;
Reranking-Modelle dienen dazu, eine Liste von Dokumenten basierend auf der Eingabeaufforderung neu zu ordnen. nützlich für Suchmaschinen, Empfehlungssysteme und Informationsabruf.
$ 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 ;