LLPhant/LLPhant

LLPhant - A comprehensive PHP Generative AI Framework using OpenAI GPT 4. Inspired by Langchain

TL;DR

LLPhant 是一个 PHP 库,让您可以调用大型语言模型(OpenAI、Anthropic、Mistral、Ollama 等)并使用向量数据库,以便在 PHP 应用程序(Symfony、Laravel)中构建检索增强生成(RAG)或自主 AI 代理。它还捆绑了一个基于 Jev 的分类器,用于安全、评分标准式的评分。


功能说明(白话文)

  • LLM 访问 – 为许多热门的 LLM API(OpenAI、Anthropic、Mistral、Ollama、LM Studio、Atlas Cloud、Heabsy、LocalAI 等)提供轻量级封装。
  • 向量存储集成 – 让您存储文档嵌入并执行相似度搜索,这是 RAG 管线的核心。
  • 代理 / 问答辅助 – 为问答、工具调用和自主代理提供现成的类,可直接放入 Symfony 或 Laravel 项目中。
  • JevClassifier – 一种安全/质量分类器(Noul、Choice、Score),可以标记提示注入攻击并提供基于评分标准的评分,同时揭露 Token 使用元数据。
  • 框架友好 – 设计用于与 PHP 框架 Symfony 和 Laravel 顺畅协作。

适用对象

  • PHP 开发者:希望在不离开熟悉技术堆栈的情况下,增加生成式 AI 功能(聊天机器人、文档搜索、摘要、自主代理)。
  • 在 Laravel/Symfony 上构建内部工具的团队:需要查询 LLM 或执行 RAG 管线。
  • 公司:已经拥有 PHP 后端并希望快速尝试 AI 增强服务。

如何开始(快速步骤)

  1. 通过 Composer 安装:
    composer require theodo-group/llphant
    
    (如果缺少 GD 扩展功能,请加上 --ignore-platform-req=ext-gd。)
  2. 设置 LLM 提供者 – 设置适当的 API 密钥(例如 OPENAI_API_KEY)并选择驱动程序(OpenAI、Anthropic、Ollama 等)。
  3. 建立向量存储(例如使用 Pinecone、Milvus 或本地 SQLite 存储)并使用提供的嵌入辅助工具索引您的文档。
  4. 使用高阶类(如 QuestionAnswering 或 Agent)来执行 RAG 查询或自主工作流程。
  5. (选用)加入 Jev 安全性 – 导出 JEV_API_KEY 并实例化 new JevClassifier() 以取得类型化的评分标准分数和提示注入检测。

新功能 / 值得注意之处

  • 类型化 Jev 分类 – 支持三种评分标准类型(Noul、Choice、Score)。返回的答案现在包含 inputTokens 和 outputTokens 以进行成本追踪。
  • 提示注入防护 – ClassifierPromptInjectionQueryTransformer 可以插入 QA 管线以过滤恶意输入。
  • 广泛的 LLM 支持 – 新增了对 Mistral、Atlas Cloud、Heabsy 和本地运行 Ollama 模型(例如 Llama 2)等较新服务的驱动程序。

代码草稿(仅供说明,非详尽)

use LLPhant\LLM\OpenAI\OpenAIClient;
use LLPhant\VectorStore\Pinecone\PineconeStore;
use LLPhant\Agent\QuestionAnswering;
use LLPhant\Classifier\JevClassifier;

$llm = new OpenAIClient(apiKey: getenv('OPENAI_API_KEY'));
$vectorStore = new PineconeStore(apiKey: getenv('PINECONE_KEY'));

$qa = new QuestionAnswering($llm, $vectorStore);

// 选用的安全层
$classifier = new JevClassifier();
$qa->addTransformer($classifier->getPromptInjectionTransformer());

$response = $qa->ask('How does quantum entanglement work?');
print_r($response->content);
print "Tokens used: {$response->inputTokens} → {$response->outputTokens}\n";

更多信息

  • 文档 – docs/ 文件夹或 https://llphant.readthedocs.org
  • 视频教程(法文) – 使用 Symfony 构建 RAG 应用程序、创建自主代理。
  • 幻灯片与文章 – 请参阅链接的 Medium 和 SlideShare 文章以进行更深入的架构讨论。

LLPhant 是一个真正的开源 PHP 项目,旨在将生成式 AI 和向量搜索功能带入 PHP 生态系统。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目