LLM Flow是一种旨在促进AI开发过程的Web工具,始于定义孤立的AI用例(AI功能),实现提示,评估和改善及时质量,并生成API以将AI功能集成到您自己的应用程序中。
探索功能»
(返回到顶部)
(返回到顶部)
该项目分为三个服务,所有服务都必须单独设置:
server :FastApi后端promptfoo-server :express.js后端运行promptfooclient :Next.js Frontend(返回到顶部)
如果您只想在不大量努力的情况下运行该应用程序,请使用Docker设置。对于本地开发,请参阅本地设置。
先决条件:
如何设置:
对于server和client ,通过复制和重命名.env.docker.template文件,在其各自的根文件夹中创建.env.docker文件。对于promptfoo-server从.env.template文件创建.env文件。用自己的模板中的秘密替换。
在根文件夹中运行这两个命令:
docker compose build
docker compose up -d
client :http:// localhost:3000/backend :http:// localhost:4000/docs(返回到顶部)
先决条件:
您也可以使用不同的节点版本。但是,我仅使用节点22测试了设置。
如何设置:
对于所有三个服务,通过复制和重命名.env.template文件,在其各自的根文件夹中创建.env文件。用自己的模板中的秘密替换。
在根文件夹中运行:
docker compose up mongo -d
backend要运行backend ,您可以使用VS代码调试器启动它或在backend文件夹中运行以下内容:
pipenv install
pipenv run python3.12 wsgi.py
promptfoo-server在promptfoo-server文件夹中运行:
npm install
npm run start
client :在client文件夹中运行:
npm install
npm run dev
client :http:// localhost:3000/backend :http:// localhost:4000/docs(返回到顶部)
如果要开发项目,请确保首先通过本地设置运行。
先决条件:
以下是开发过程中使用的一些有用命令:
pre-commit run --all-files
sh generate_client_bindings.sh
在client文件夹中运行:
npm run lint
npm run pretty
(返回到顶部)
AI功能代表您自己的业务逻辑和LLM提供商之间的合同。您将一组参数传递给它们,然后返回结构化输出。
在Web界面中,您可以定义AI函数。您定义其名称,给它描述,定义其接受的参数,然后选择可能使用的提供商:
您还定义该函数是否返回一个简单的非结构化字符串响应或结构化的JSON响应。对于后者,您可以使用JSON模式编辑器来定义复杂的JSON对象。
为了评估AI函数提示的质量,您可以定义断言和测试用例。主张用于与期望值或条件进行比较。此功能在引擎盖下使用Promptfoo。从简单的比较到复杂的正则模式,甚至使用自定义的python或JavaScript代码,可以选择各种断言类型,范围从简单的比较到复杂的正则模式。
测试用例请参阅AI函数参数的示例数据。他们在主张及时质量方面发挥了不可或缺的作用。定义提示后,对其在AI函数中定义的断言的测试用例进行评估。您还可以定义仅应用于单个测试案例的断言。 AI的功能甚至具有基于先前定义的测试用例以及AI函数的名称和描述生成测试用例。
首先,您可以简单地从提供的一个示例中创建AI函数:
(返回到顶部)
在LLM流中,提示是在AI函数的上下文中定义的。它们必须在其体内包含各个AI功能的参数,并根据其测试案例和断言进行评估。
评估AI函数下指定的每个提供商的提示。这允许比较不同提供商的提示质量。在评估期间计算了三个指标:
(返回到顶部)
项目是创建API的一种方法,您可以调用各种AI功能。在Web界面中,为每个项目生成了自定义Swagger文档,您可以使用该文档来测试客户端本身中的API。您还可以导出OpenAPI规范,以使用OpenAPI-Generator等代码生成器生成自己的客户端绑定。
API文档会自动填充所选AI功能的名称,描述和参数,并将定义的测试用例之一作为示例。项目中的每个AI函数都分配了自己的端点。
这样,您可以在自己的应用程序中集成LLM流中定义的AI功能。创建项目后,您不一定需要运行客户端来调用其端点。这是有关如何创建和使用项目的演示:
(返回到顶部)
如果您有一个可以使情况变得更好的建议,请分配存储库并创建拉动请求。您也可以简单地使用标签“增强”打开问题。别忘了给项目一个明星!再次感谢!
git checkout -b feature/AmazingFeature )git commit -m 'Add some AmazingFeature' )git push origin feature/AmazingFeature )(返回到顶部)
根据MIT许可分发。有关更多信息,请参见LICENSE.txt 。
(返回到顶部)
Amir Mohammad [email protected]
项目链接:https://github.com/amir-mo1999/llmflow
(返回到顶部)