Примечание
Работа продолжается.
Lughha с суахили, что означает «Язык», — это PHP-генеративная платформа искусственного интеллекта, которая обеспечивает простой и легкий способ взаимодействия с различными поставщиками искусственного интеллекта. Основная идея состоит в том, чтобы предоставить единый независимый от поставщика API для моделей ИИ, что упростит переключение между поставщиками.
Этот проект во многом вдохновлен LangChain и LLPhant, разработанным для Chatbot, приложений на основе RAG (Retrival-Augmented Generation) с интеграцией моделей встраивания, завершения и переранжирования.
поддерживаемые провайдеры:
Поставщик | Связь | Функции |
---|---|---|
ОпенАИ | openai.com | Завершение, Вложения |
Мистраль | мистраль.ай | Завершение, Вложения |
ай.гугл | Завершение, Вложения | |
GitHub | github.com | Завершение, Вложения |
антропный | антропный.com | Завершение |
Вояджер.ай | voyageai.com | Вложения, переранжирование |
Оллама | ollama.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 ;