微信扫码
与创始人交个朋友
我要投稿
Autogen支持OpenAI是毫无疑问的,本文验证Autogen支持第三方开源模型的方法。
在开源LLM社区中,我们有几种高效的本地推理方法,例如llama.cpp用于低级部署,而Ollama则是一个优秀的封装服务器。Ollama是一个允许您在自己设备上运行LLM的平台,它采用的推理技术使模型在速度和资源需求上变得极为高效。
接下来,我们通过Ollama运行Gemma ,然后将其集成到Autogen中。
!curl -fsSL https://ollama.com/install.sh | sh
import subprocess
subprocess.Popen(["ollama", "serve"])
接下来,拉取gemma 7b的模型。
!ollama pull gemma:7b
设置伪api_key以及model等。
import os
os.environ['OAI_CONFIG_LIST'] ='[{"model": "gemma:7b","api_key": "EMPTY", "max_tokens":1000}]'
在autogen中定义LLM:
import autogen
llm_config={
"timeout": 600,
"cache_seed": 68, # change the seed for different trials
"config_list": autogen.config_list_from_json(
"OAI_CONFIG_LIST",
filter_dict={"model": ["gemma:7b"]},
),
"temperature": 0.5,
}
llm_config['config_list'][0]["base_url"] = f"http://localhost:11434/v1"
在Autogen中定义两个agent:Writer和Editor,然后定义groupchat manager。
user_proxy = autogen.UserProxyAgent(
name="User_proxy",
system_message="A human admin.",
code_execution_config=False,
human_input_mode="TERMINATE",
is_termination_msg=lambda x: x.get("content", "") and x.get("content", "").rstrip().endswith("TERMINATE"),
)
writer = autogen.AssistantAgent(
name="Writer",
system_message="""You are a blog post writer who is capable of writing a travel blog.
You generate one iteration of an article once at a time.
You never provide review comments.
You are open to comments and willing to make changes in your article based on these comments.
""",
llm_config=llm_config,
description="""This is a blog post writer who is capable of writing travel blogs.
The writer is open to any comments and recommendations for improving the article.
Ask writer to iterate article every time when there is a new change recommendation from editor.
"""
)
editor = autogen.AssistantAgent(
name="Editor",
system_message="""You review blog posts and give change recommendations to make the article more viral on social media, for example, adding hashtag.
You never write or revise blogs by yourself.
""",
llm_config=llm_config,
description="""This is an editor who reviews the blogs of writers and provides change ideas.
The editor should be called every time the writer provides a version of a blog post.
"""
)
groupchat = autogen.GroupChat(agents=[user_proxy, writer, editor], messages=[], max_round=6)
manager = autogen.GroupChatManager(groupchat=groupchat, llm_config=llm_config)
向groupchat manager发起prompt撰写一篇 150 字左右的关于Bohol岛旅行的博文。
user_proxy.initiate_chat(manager, message="""
Generate a 150-word of blog post about traveling on Bohol Island.
""")
(为了方便阅读,我将输出的所有英文用GPT-4翻译成中文):
第一步,我们看到groupchat manager先把任务分给了writer:
Writer (to chat_manager):
## 薄荷的岛屿魅力:历史与天堂的交汇
薄荷岛,恰如其分地被昵称为“巧克力山的岛屿”,是菲律宾的一个令人叹为观止的宝石。从你踏上它那洁白的沙滩的那一刻起,你就被这个岛屿天堂的温暖拥抱所包围。
高耸在你头顶的是标志性的巧克力山,数百座小型的圆锥形小山,看起来就像是巧克力豆。要想亲眼见证它们令人屏息的日出,前往巧克力山综合体的观景台吧。
除了巧克力山,Bohol岛还提供了一系列珍贵的体验。沉浸在阿隆娜海滩的宁静中,潜水探索清澈见底的水域,或者踏上前往古老的巴克拉永城的旅程,在那里,几个世纪老的庙宇述说着过去的故事。
薄荷岛是美食爱好者的天堂,提供新鲜的海鲜、美味的巧克力甜点和充满活力的街头食品。一定要尝试当地的美食——“巴卢特”,并让你的味蕾享受一场美食冒险。无论你身在何处,薄荷岛都是一个真正的天堂。
第二步,Editor提出了修改建议:
Editor (to chat_manager):**Change Recommendations:**
增加字数:扩展每项活动的细节,并添加个人轶事,使博客文章更具吸引力。
创建行动号召:以强有力的行动号召结束帖子,邀请读者访问Bohol岛并体验其魔力。
第三步,writer按照edtor的建议重新写了文章:
Writer (to chat_manager):##薄荷岛的岛屿魅力:历史与天堂相遇之地
薄荷岛,恰如其分地被昵称为“巧克力山的岛屿”,是菲律宾的一块令人叹为观止的宝石。当你踏上它那洁白无瑕的沙滩,便立刻被这座岛屿天堂的温暖怀抱所包围。
高耸在你头顶的是标志性的巧克力山,数百座小型的圆锥形小山,它们酷似巧克力豆。想要亲眼目睹它们令人屏息的日出,就前往巧克力山综合体的观景台吧。
在巧克力山之外,薄荷岛还提供了一系列宝藏般的体验。沉浸在阿隆纳海滩的宁静之中,潜入清澈的水中浮潜,或是踏上前往古老的巴克拉永城市的旅程,在那里,几个世纪的古庙低声叙说着过往的故事。
薄荷岛是美食爱好者的天堂,提供新鲜的海鲜、美味的巧克力甜点和充满活力的街头食品。一定要尝试当地的特色食品“巴鲁特”,让你的味蕾享受一场美食冒险。
无论你是在寻求冒险、放松还是窥探过去,薄荷岛有适合每个人的东西。所以,打包你的行囊,来体验这座岛屿天堂的迷人魅力吧。
使用Autogen编排第三方开源模型方案验证成功!
53AI,企业落地应用大模型首选服务商
产品:大模型应用平台+智能体定制开发+落地咨询服务
承诺:先做场景POC验证,看到效果再签署服务协议。零风险落地应用大模型,已交付160+中大型企业
2024-03-30
2024-04-26
2024-05-10
2024-05-28
2024-04-12
2024-04-25
2024-05-14
2024-07-18
2024-08-13
2024-04-26