3个最流行的大模型应用开发框架【LLM】
liuian 2025-06-30 18:00 56 浏览
随着人工智能的能力,特别是大型语言模型 (LLM) 的不断发展和演变,开发人员正在寻求将 AI 功能整合到他们的应用程序中。 虽然文本完成和摘要等简单任务可以通过直接调用 OpenAI 或 Cohere 提供的 API 来处理,但构建复杂的功能需要付出努力和工具。
Jon Turow 和他在 Madrona 的团队首先指出了这一点,他们指出
开发人员必须为提示工程、微调、蒸馏以及组装和管理将查询引用到适当端点的管道等步骤发明自己的工具。
- “Foundation Models: The future isn’t happening fast enough — Better tooling will make it happen faster ” Madrona Ventures
在本文中,我们将探索三个开源 AI 框架,它们可以帮助开发人员更快地构建 AI 功能但首先,让我们仔细看看这些框架需要提供哪些功能才能有效。
- 基础模型抽象:要构建 AI 驱动的应用程序,开发人员需要访问最新最好的基础模型。 然而,随着新模型的出现,跟上升级和变化可能具有挑战性。
- 提示管理:提示在 AI 中变得越来越重要,它是我们用来与基础模型进行交流的语言。 然而,开发和管理提示对于开发人员来说可能是一项复杂的工作。
- 上下文管理:由于开发人员将多个调用链接到 LLM,管理上下文和协调调用之间的数据可能是一个重大障碍,尤其是在构建复杂的 AI 驱动的应用程序时。
那么谁是 AI 框架领域的新玩家? 它们会成为 Rails、Laravel 和 Express 在 Web 开发中的地位吗?
推荐:用 NSDT场景设计器 快速搭建3D场景。
1、dust.tt
Dust.tt 是最早的开源人工智能框架之一。 它是用 Rust 编写的,允许开发人员使用其他工具链接调用 LLM,以提取所需的输出。 Dust.tt 使用 OpenAI、AI21 和 Cohere 等语言模型,并具有用于 Google 搜索、curl 和网络抓取(包装 browserless.io)的集成块。
关键概念:Dust.tt 应用程序包含一系列按顺序执行的块。 每个块都会产生输出,并且可以引用先前执行的块的输出。 Dust.tt 应用程序开发人员定义每个块的规范和配置参数。
例子:在下面的示例中(来自 Dust 文档),Dust 应用程序使用 AI 为结婚礼物编写个性化的感谢信。
首先我们设置一个带有客人列表的输入块:
然后我们设置一个带有示例的训练块。
然后我们用输入和训练示例调用 LLM。
最后,我们提取结果。
2、LangChain
Langchain 是一个开源 Python 库,允许开发人员以可组合的方式使用语言模型 (LLM) 构建 AI 驱动的应用程序。 借助 Langchain,可以创建聊天机器人、问答系统和其他人工智能代理。
关键概念:开发人员使用“链”连接组件来构建他们的 AI 应用程序。 该库提供了一组构建块,包括输入/输出、处理和实用程序块,可以将它们组合起来创建自定义链。
例子:在这个例子中(来自他们的文档),代码要求 LLM 命名一家生产产品的公司,然后它要求 LLM 为公司写一个标语。
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
from langchain.chains imporpt LLMChain
from langchain.chains import SimpleSequentialChain
llm = OpenAI(temperature=0.9)
prompt = PromptTemplate(
input_variables=["product"],
template="What is a good name for a company that makes {product}?",
)
chain = LLMChain(llm=llm, prompt=prompt)
# Run the chain only specifying the input variable.
print(chain.run("colorful socks"))
second_prompt = PromptTemplate(
input_variables=["company_name"],
template="Write a catchphrase for the following company: {company_name}",
)
chain_two = LLMChain(llm=llm, prompt=second_prompt)
overall_chain = SimpleSequentialChain(chains=[chain, chain_two], verbose=True)
# Run the chain specifying only the input variable for the first chain.
catchphrase = overall_chain.run("colorful socks")
print(catchphrase)LangChain also has agents. An Agent enables you to dynamically build chains based on user input and the tools you provide.在下面的代码中(来自 Langchain 文档),代理被初始化并提供了搜索和运行数学运算的工具。
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
llm = OpenAI(temperature=0)
tools = load_tools(["serpapi", "llm-math"], llm=llm)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run("Who is Leo DiCaprio's girlfriend? What is her current age raised to the 0.43 power?")"Camila Morrone is Leo DiCaprio's girlfriend and her current age raised to the 0.43 power is 3.991298452658078."Langchain 已经流行起来,现在拥有大量的集成。 一个新项目正在进行中,将其移植到 TypeScript,从而可以构建 AI 驱动的 JavaScript 应用程序。
目前可用的一些集成包括 OpenAI、Cohere、GooseAI、Hugging Face Hub、Petals、CerebriumAI、PromptLayer、SerpAPI、GoogleSearchAPI、WolframAlphaAPI、NatBot、Wikipedia、Elasticsearch、FAISS、Manifest、OpenSearch、DeepLake。
3、BoxCars
披露:BoxCars是我的开源项目。
BoxCars 是受 Langchain 启发的开源 gem,可简化向 Ruby-on-Rails 应用程序添加 AI 功能的过程。
关键概念:在 BoxCars 中,train包括引擎 (LLM) 和 Boxcars(工具)。 train使用指定的工具协调对 LLM 的调用。 例如,以下代码使用 LLM、Google 搜索和计算器。
boxcars = [Boxcars::Calculator.new, Boxcars::Serp.new]
train = Boxcars.train.new(boxcars: boxcars)
puts train.run "What is pi times the square root of the average temperature in Austin TX in January?"BoxCars 的设计理念与 Ruby on Rails 相同。 它包括一个 ActiveRecord BoxCar,使得与 Rails 应用程序的本地集成变得容易。 在下面的示例中,ActiveRecord BoxCar 设置了模型(Ticket、User、Comments),然后跨模型提问。 LLM 生成返回结果的 ActiveRecord 代码。
helpdesk = Boxcars::ActiveRecord.new(name: 'helpdesk', models: [Ticket, User, Comment])
helpdesk.run "how many comments do we have on open tickets?"**`> Entering helpdesk#run**how many comments do we have on open tickets?
Comment.where(ticket: Ticket.where(status: 0)).count
Answer: 4
**< Exiting helpdesk#run**`
Out[7]:
`"Answer: 4"`4、结束语
这些框架还不到一年的历史,并且发展迅速; 毫无疑问,未来还会有更多。 好消息是,如果你正在考虑将 AI 功能添加到您的应用程序中,帮助就在路上。
原文链接:
http://www.bimant.com/blog/llm-app-framework/
相关推荐
- 电脑可以一键还原吗(电脑可以一键还原吗win10)
-
把电脑一键还原取消的具体方法:1、首先打开计算机,在计算机内打开运行界面,在运行界面内输入sysdm.cpl。2、在“高级”选项卡下,点击“启动和故障恢复”中的“设置”。3、在系统启动一栏中点击下拉框...
- vmware workstation安装教程
-
首先,需要将workstation17的安装程序下载到电脑上。然后,双击安装程序,按照提示进行安装。在安装过程中需要选择安装路径、设置管理员账户等相关信息。安装完成后,可以根据需要对软件进行配置和设置...
- hosts文件配置异常不能上网(hosts文件配置出现问题)
-
是的。Hosts文件配置异常,那么访问的路径会指向错误的地方。那就无法访问网络了。Hosts作为DNS缓存器,他会暂时记住您访问的地址的解析。下次电脑访问此DNS会按以前的访问路径去访问。这时我们可以...
- 电脑蓝屏怎么解决问题(电脑蓝屏一般怎么解决)
-
主要症状:;1、电脑使用过程中出现蓝屏;可能原因:;1、电脑中毒2、软件或驱动冲突3、硬件问题;解决方案:;1、检测蓝屏文件2、分析蓝屏文件3、蓝屏修复;方案一:电脑超频过度引起电脑蓝屏;可以...
- 安装程序正在更新注册表设置
-
如果你遇到给比较新的电脑装win7系统出现卡死在更新注册表设置界面的话,应该是你出现了下面的行为:1、你的U盘是做成了支持UEFI启动的U盘,而你进winpe是从uefi启动U盘进去的,在uefi的p...
- 手机分辨率对应dpi(手机分辨率参数)
-
一般手机默认的DPI是411,当然有厂商也会把默认的设置为360.具体的还是要看个人的喜好的。有人喜欢字体图标比较大的,但也有人喜欢比较小的。dpi是打印尺寸,dpi跟像素是没有必然关系的。200d...
- 下载了iso文件怎么装系统(iso文件直接安装)
-
将ISO系统镜像文件进行解压。将解压多的文件,保存到电脑的硬盘中。解压文件完成以后,找到保存文件的文件夹并点击打开,双击硬盘安装。双击硬盘安装后,自动弹出安装设置界面。在安装设置界面中,对系统的盘符和...
- 华为刷机包官方下载(华为 刷机包)
-
刷机步骤(线刷):①在电脑下载一个线刷宝②在关机状态下长按电源键跟音量减键5秒会自动进入一个有安卓机器人的界面③用数据线连接手机④线刷宝会识别出手机型号并且给出相应的刷机包点下载就可以⑤下载完成之后点...
- windows7service pack1下载(windows7 server pack 1)
-
带常见的网卡驱动,特殊网卡需要自己安装。64位win7升级Windows7ServicePack1(sp1)升级主要由两种方法,具体如下:方法一、打开控制面板-操作中心-WindowsUp...
- 台式机处理器天梯图(台式机处理器性能排名)
-
苹果CPU天梯图是一种CPU性能排名工具,它根据CPU的性能指标对不同型号的CPU进行排名。目前,苹果的A14Bionic芯片在天梯图排名中名列前茅,其次是A13Bionic、A12Bionic...
- vmos虚拟机手机版(VMos虚拟机手机版下载)
-
有危害的,一般来说正常情况下使用vmos是不会伤手机的。vmos是安卓系统的一个虚拟机模拟器软件,使用这个虚拟机软件可以在现在的安卓手机中,模拟并运行一个或者多个安卓系统,这样就可以同时使用多个不同的...
- 老桃毛u盘重装系统win7(老桃毛u盘重装系统找不到引导分区)
-
第一步,你的重装系统以后你U盘没有拔拔掉,它会重复的进入安装系统的界面,只要拔掉U盘就可以解决这个问题。第二个就是硬盘的问题,如果硬盘的问题直接改变一下硬盘模式,就可以解决这个问题,通过这两个方法完全...
- u盘修复软件哪个最好免费(u盘修复免费软件有哪些)
-
恢复U盘数据的软件还是很多的,比如嗨格式数据恢复大师使用就很方便,使用方法如下:1、首先打开电脑浏览器,搜索“嗨格式数据恢复大师”,选择软件主界面中的“快速扫描恢复”模式对磁盘进行扫描。2、当扫描模式...
- 如何清理c盘缓存文件(怎么清除c盘的缓存)
-
具体步骤如下:1、首先在电脑桌面找到“计算机”图标(有的可能是我的电脑)双击左键打开。2、在打开的页面中找到“本地磁盘C”,然后右键单击。3、右键单击以后会出现一个菜单,我们在菜单的最底部扎到“属性”...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
