LLPhant: PHP-фреймворк для генеративного ИИ

LLPhant - это библиотека на PHP для создания приложений с генеративным ИИ. Она предоставляет единый интерфейс для работы с различными LLM-провайдерами и заимствует архитектурные подходы из LangChain и LlamaIndex.

Фреймворк разработан Максимом Тунсеном и ориентирован на упрощение интеграции ИИ в PHP-приложения.

Поддержка нескольких LLM-провайдеров

LLPhant абстрагирует различия между провайдерами, позволяя переключаться между ними без значительных изменений в коде. Поддерживаются OpenAI, Anthropic, Mistral, LM Studio и Ollama.

Пример использования разных моделей с одинаковым интерфейсом:

// OpenAI

$chat = new OpenAIChat();
$response = $chat->generateText('What is the capital of France?');


// Anthropic Claude

$chat = new AnthropicChat(
    new AnthropicConfig(AnthropicConfig::CLAUDE_3_5_SONNET)
);
$response = $chat->generateText('What is the capital of France?');


// Локальные модели через Ollama

$config = new OllamaConfig();
$config->model = 'llama2';

$chat = new OllamaChat($config);

Библиотека также поддерживает стриминг ответов, учет использования токенов и работу с изображениями.

Embeddings и векторные хранилища

LLPhant включает полный пайплайн для построения RAG-приложений: загрузка документов, разбиение на части, генерация эмбеддингов и сохранение в векторные базы данных.

Пример:

// Чтение документов

$reader = new FileDataReader(__DIR__.'/documents');
$documents = $reader->getDocuments();


// Разбиение на части

$splitDocuments = DocumentSplitter::splitDocuments($documents, 800);


// Генерация эмбеддингов

$embeddingGenerator = new OpenAI3SmallEmbeddingGenerator();
$embeddedDocuments = $embeddingGenerator->embedDocuments($splitDocuments);


// Сохранение в PostgreSQL (pgvector)

$vectorStore = new DoctrineVectorStore($entityManager, Document::class);
$vectorStore->addDocuments($embeddedDocuments);


// Поиск похожих данных

$embedding = $embeddingGenerator->embedText('search query');
$results = $vectorStore->similaritySearch($embedding, 5);

Поддерживаются различные векторные хранилища, включая PostgreSQL (pgvector), Redis, Elasticsearch, MongoDB, Qdrant, Milvus, Pinecone и другие.

Вопрос-ответ с использованием RAG

Класс QuestionAnswering реализует полный цикл RAG: поиск релевантных документов и генерацию ответа на их основе.

use LLPhant\Query\SemanticSearch\QuestionAnswering;

$qa = new QuestionAnswering(
    $vectorStore,
    $embeddingGenerator,
    $chat
);

$response = $qa->answerQuestion(
    'What are the main topics covered in the documentation?'
);

Поддерживается настройка системного промпта, добавление ограничений (guardrails) и использование multi-query подходов для повышения качества поиска.

Function calling и инструменты

LLPhant поддерживает механизм function calling (tools), позволяющий моделям взаимодействовать с внешними API и сервисами. Инструменты описываются как PHP-классы, а модель сама решает, когда их использовать в зависимости от контекста диалога.

Комментарии (0)

Войдите, чтобы оставить комментарий

Похожие статьи

Кибербезопасность 2 месяца назад

Как искусственный интеллект ускорил взлом AWS-среды - за 8 минут

Атака на среду AWS в ноябре 2025 года показала, как злоумышленник с помощью AI и LLM-инструментов получил полный административный доступ менее чем за восемь минут. Ошибки конфигурации облака и использование генеративных моделей ускорили атаку и подчеркнули новые угрозы для облачной безопасности.

Как создать новый проект на Laravel: подробное руководство для начинающих

Подробное руководство по созданию и настройке нового проекта на Laravel. Подходит для начинающих, которые хотят разобраться с установкой, структурой и запуском приложения.