从LangChain使用Agent的懵懵懂懂,到AutoGen的"放肆"Agents,这周的学习和写作实在太幸福了。假如您是第一次接触AugoGen,请先要查看AutoGen官方文档,或翻阅AutoGen系列的前几篇。
逐步掌握最佳Ai Agents框架-AutoGen 三 写新闻稿新方式
[逐步掌握最佳Ai Agents框架-AutoGen 四 多代理群聊实例]
逐步掌握最佳Ai Agents框架-AutoGen 五 与LangChain手拉手 - 掘金 (juejin.cn)
逐步掌握最佳Ai Agents框架-AutoGen 六 语音AI代理 - 掘金 (juejin.cn)
逐步掌握最佳Ai Agents框架-AutoGen 七 低代码AI助理 - 掘金 (juejin.cn)
前言
本篇文章,我们来探索下AutoGen使用其它LLM大模型。主要原因是AutoGen在使用chatgpt3.5/chatgpt 4等付费模型时,token开销比较大。如果我们的业务,社区里的开源模型就能搞定,那当然就开冲了。
接下来就让我们看下,来自Facebook的Llama2 7B。这个模型都有70亿+参数,表现优越。我们让AutoGen的模型替换成这两个模型,来看下运行效果。
LLM Studio
在之前的文章中,我们介绍了多款AI生态受欢迎的工具和服务。比如,Flowise AI这一无代码AI拖拽工具;PlayHT文本转语音工具。今天,我们来玩下LLM Studio
, 可以帮助我们快速下载各种开源大模型并运行,并以http server的方式提供LLM服务。 它是一个一站式的解决方案,可以提供OpenA兼容的接口,这样能让我们将之前基于OpenAi的应用,快速切换到开源大模型,降低开发成本。
根据官网的介绍,LMStdio主打以下功能
-
在本地运行各种大语言模型(
Hugging Face
大把开源模型) 可以非常方便的让我们在开发阶段,调试不同的模型,看在项目中的效果,最终选择用户体验更好的大模型。 -
LMStdio 集成了Chat Bot 功能,可以方便的加载不同的模型,聊天 同时,它还支持OpenAI兼容的API格式,暴露接口。
-
可以方便的从
Hugging Face
下载一些模型和文件,LMStdio也会经常给我们推一些热点或有趣的模型。
完成AutoGen系列后, 我会启一个AI工具或服务系列,欢迎大家评论留言,你喜欢的AI工具或服务,打个tag, 交流起来。
- 下载 LLM Studio
到LM Studio - Discover, download, and run local LLMs,下载LLM Studio。
- 在模型search 功能页搜索
llama
,facebook 开源的大模型, 并从结果中找到我们需要的进行下载
按上图, 会将模型下载到本地。
- 测试聊天功能
我们在最上面,选择刚刚下下载的llama 2 chat 模型后,LLM Studio会加载并运行该模型。之后,我们就可以像使用chatgpt 一样,跟 llama 2模型聊天了。在左上角还会有内存和CPU的使用情况。从上图可知,CPU飙的快到脖颈子了。
- api server
chat 之后的这个tab, 是 api server 页, 它会基于我们的大模型, 启动一个本地的http server, 让我们以localhost api的方式调用大模型能力。 点击Start Server
可以从日志中看到相关信息,它是以OpenAI的方式,提供这些接口。
- 测试llama 2 的api server
我们使用postman发送了请求,成功拿到了本地模型执行后的响应。速度有点慢,是我们自己电脑或服务器的性能问题了。
对比llm_config
python
config_list = [ { 'model': 'gpt-3.5-turbo', 'api_key': '' }]
llm_config={ "seed": 42, #为缓存做的配置 "config_list": config_list }
这是之前文章用到的OpenAI 配置。
python
config_list = [
{
"api_base": "http://localhost:1234/v1",
"api_key": "xyz"
}
]
这是我们今天使用LLama 2开源模型后的配置。我们将model 换成 api_base, 调用本地http 服务。
构建 Agent
AutoGen最核心的概念是两类Agent, UserProxyAgent和AssistantAgent。
python
from autogen import AssistantAgent, UserProxyAgent
assistant = AssistantAgent(name="assistant",
llm_config=llm_config,
)
user_proxy = AssistantAgent(name="user_proxy")
发起聊天
user_proxy负责发起聊天。
python
user_proxy.initiate_chat(
assistant,
message: """
Write a python function to calculate the square root of a number, and call it with the number 4.
"""
)
返回结果
python
user_proxy (to assistant):
Write a python function to calculate the square root of a number, and call it with the number 4.
--------------------------------------------------------------------------------
assistant (to user_proxy):
def sqrt(n):
return n ** 0.5
print(sqrt(4))
TERMINATE
其它的我就不粘了, 大家自己玩。
总结
在这篇文章中, 我们使用AI生态中的LLMStudio 解锁了切换大模型的能力。OpenAI虽好, 但是费用是真贵。好多小伙伴们反馈,AI应用是开发上线了,用户没多少,token账单几万几万的....