python接入AI大模型(以火山方舟为例)【保姆级教程】_火山方舟大模型 接入例子
本文主要用python语言实现agent的角色扮演,具体可参考火山方舟(火山方舟管理控制台)和微软的agentchat文档(AgentChat — AutoGen)
一、开通火山方舟的账户
具体可参考我之前写的文章(java搭建ai平台(保姆级教程)_java ai 大模型开发平台-CSDN博客),账户开通之后把api-key保存下来
二、部署本地环境
我使用的是PyCharm Community Edition 2024.3.3版本的python编译器,然后pip把改安装的插件给装了
pip install -U \"autogen-agentchat\"pip install \"autogen-ext[openai]\"pip install \"autogen-ext[azure]\"pip install --upgrade \"openai>=1.0\"
如果安装失败的话可以用清华的镜像,如
pip install \"autogen-ext[openai]\" -i https://pypi.tuna.tsinghua.edu.cn/simplepip install -U \"autogen-agentchat\" -i https://pypi.tuna.tsinghua.edu.cn/simplepip install \"autogen-ext[azure]\" -i https://pypi.tuna.tsinghua.edu.cn/simple
如图所示

三、编写程序
新建一个项目,里面添加一个软件包名为chat_routers,在包下创建一个python文件名为agent_chat,以及在根目录下创建main.py文件,如下图所示


agent_chat.py的代码
from autogen_agentchat.messages import TextMessagefrom autogen_core import CancellationTokenfrom autogen_agentchat.agents import AssistantAgentfrom autogen_core.models import ChatCompletionClient# 发送异步消息async def chat_agent(user_content:str): try: # 大模型配置 model_config = { \"provider\": \"autogen_ext.models.openai.OpenAIChatCompletionClient\", \"config\": { \"model\": \"doubao-*****\", \"api_key\": \"6ef******\", \"base_url\": \"https://ark.cn-beijing.volces.com/api/v3\", \"model_info\": { \"multiple_system_messages\": True, \"vision\": False, \"function_calling\": True, \"json_output\": False, \"family\": \"doubao\", \"structured_output\": False } } } model_client = ChatCompletionClient.load_component(model_config) # 配置智能体实例 assistant_agent = AssistantAgent( name=\"店员A\", model_client=model_client, system_message=\"你是便利店店员,性别为女,你性格活泼开朗,遇到什么人都能唠两句,你喜欢用肢体动作表达你的情绪,如(手舞足蹈)\" ) agent_response = await assistant_agent.on_messages( messages=[TextMessage(content=user_content, type=\"TextMessage\", source=\"user\")], cancellation_token=CancellationToken() ) # 记录消耗的Token数 prompt_tokens = agent_response.chat_message.models_usage.prompt_tokens # 输入token completion_tokens = agent_response.chat_message.models_usage.completion_tokens # 输出token agent_name = agent_response.chat_message.source # agent的回复 reply_content = agent_response.chat_message.content if hasattr(agent_response.chat_message, \"content\") else \"\" # 构造返回值 result = [{ \"prompt_tokens\":prompt_tokens, \"completion_tokens\":completion_tokens, \"reply_content\":reply_content, \"agent_name\":agent_name }] # 返回结果 return result except Exception as e: print(f\"报错:{e}\") return e
main.py的代码
import asynciofrom chat_routers.agent_chat import chat_agentimport warnings# 忽略所有警告warnings.filterwarnings(\"ignore\")async def main(): try: user_input = input(\"用户:\") while(user_input != \"退出\"): # 创建一个任务来运行 chat_agent task = asyncio.create_task(chat_agent(user_input)) # 等待任务完成并获取返回值 response = await task # 构造智能体的回复 print(f\"{response[0].get(\'agent_name\')}:{response[0].get(\'reply_content\')}\") user_input = input(\"用户:\") except Exception as e: print(f\"发生错误:{e}\")if __name__ == \'__main__\': asyncio.run(main())
至此,先别急着运行,把里面的model_name和api-key换成你自己的,教程如下
四、替换火山方舟大模型
经过第一步的注册,我们以及拿到了火山方舟的api-key,接下来就是开通模型,至于为什么是火山方舟而不是deepseek这些的,因为它便宜还好用还有很多免费额度(白嫖党点了)
(题外话:每个模型都不一样,比如thinking就是会长思考,输出的内容比较多,等待的时长也比较长,vision顾名思义就是视觉模型,可以生成图片等功能,我个人比较喜欢的是1.5-vision-pro和1.5-vison-lite,pro感觉输出的内容比较优质,lite响应很快,具体的模型效果可以点击模型详细查看,每个模型各有各的优点,除了语言模型,还有语音模型和视觉模型等,看个人所需)
正题:跳转至模型列表(火山方舟管理控制台),里面有很多你可以开通的模型,免费额度用完就重新开通另一个,如下图所示,选择一个你喜欢的模型(以Doubao-Seed-1.6-thinking为例)
点击右边的开通服务,点击我同意然后立刻购买,就会获得五百万的免费额度



再返回控制台(火山方舟管理控制台),点进新开通的模型,点击模型推理


这里能获取到你的模型id和api-key,接下来就可以正常角色聊天啦
五、结果展示


可以在agent_chat.py里面修改智能体提示词,用于智能体的认知,name为智能体名system_message为智能体提示词,相当于给智能体设立的身份


至此,结束
这只是最简单的智能体对话,还有智能体团队和智能体工具的使用,团队就是多个智能体能够一起交流,具体的可以查看微软的agentchat官方文档,还可以将智能体的对话保存到数据库中,在对话的时候让智能体根据对话的上下文回复,使之更人性化,具体的大家都可以去探索


