在创作中应用大模型智能体及构建代理框架

概要

随着人工智能技术的发展,尤其是大规模神经网络模型的兴起,智能体(Agent)在各个领域中的应用变得越来越广泛。本文将探讨如何在创作过程中应用大模型智能体,并展示如何构建一个具备在线搜索能力和本地数据检索功能的代理框架。

应用领域
大模型智能体的应用领域包括但不限于:

自然语言处理:文本生成、机器翻译、情感分析等。
图像和视频处理:图像识别、视频生成等。
推荐系统:电商推荐、视频推荐等。
游戏和娱乐:游戏对战、音乐生成等。

整体架构流程

在创作中应用大模型智能体,可以遵循以下步骤:

确定需求
明确你希望通过大模型智能体实现的功能,例如生成文本、创建聊天机器人等。
选择合适的模型
根据需求选择合适的大模型,如GPT-3、BERT、T5等开源模型,或使用商业API服务如OpenAI的GPT-3 API。
获取数据和资源
准备必要的训练数据和计算资源。如果是使用现成的API服务,则无需担心计算资源问题。
集成到创作中
将大模型智能体集成到创作流程中,例如使用文本生成模型帮助构思故事情节或生成对话。
测试和迭代
不断测试模型效果,并根据反馈进行调整。
遵守法律和伦理准则
确保在使用大模型智能体时遵守相关法律法规和伦理准则。
考虑用户体验
保证集成模型后的创作能为用户提供良好的体验。
持续学习和适应
随着新技术的出现,不断学习新的工具和技术。

技术名词解释

提示:这里可以添加技术名词解释

例如:

  • Bert
  • GPT 初代
  • GPT-2
  • GPT-3
  • ChatGPT

技术细节

构建代理框架以自动调用工具查找数据
为了更好地理解代理框架,我们构建一个具有在线搜索和本地数据检索功能的代理示例。

创建工具
安装依赖

pip install google-search-results

初始化LLM

from langchain_openai import ChatOpenAI
import os

OPENAI_API_KEY= os.getenv('OPEN_API_KEY')
llm = ChatOpenAI(openai_api_key=OPENAI_API_KEY)

在线搜索工具

from langchain_community.utilities import SerpAPIWrapper
search = SerpAPIWrapper()

searchTool = Tool(
    name="search",
    description="SerpAPI是一个搜索引擎结果页面API,它允许开发者和研究人员通过编程方式获取Google、Bing、Yahoo和其他搜索引擎的搜索结果。",
    func=search.run,
)

本地数据检索工具

from langchain_community.vectorstores import FAISS
from langchain_community.embeddings.huggingface import HuggingFaceEmbeddings
from langchain_community.document_loaders import TextLoader

embeddings_path = "D:\\ai\\download\\bge-large-zh-v1.5"
embeddings = HuggingFaceEmbeddings(model_name=embeddings_path)

loader = TextLoader("./txt/faq-4359.txt", encoding="utf8")
doc = loader.load()

vectorStoreDB = FAISS.from_documents(doc, embedding=embeddings)

retriever = vectorStoreDB.as_retriever(
    search_type="mmr",
    search_kwargs={"k": 1}
)

retriever_tool = create_retriever_tool(
    retriever,
    "retriever",
    "华为商城帮助中心文档检索器,可以搜索各种华为商城相关问题的解决方案和知识",
)

创建代理

from langchain import hub
from langchain.agents import create_openai_functions_agent
from langchain.agents import AgentExecutor

tools = [searchTool, retriever_tool]
prompt = hub.pull("hwchase17/openai-functions-agent")

agent = create_openai_functions_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

调用代理

agent_executor.invoke({"input": "你好!"})
agent_executor.invoke({"input": "能给我介绍一下华为商城里的众测活动吗?"})
agent_executor.invoke({"input": "刘亦菲最近有什么活动?"})

添加代理记忆
为了让代理记住之前的交互,我们需要给它添加记忆功能。

from langchain_core.messages import AIMessage, HumanMessage
from langchain_community.chat_message_histories import ChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory

message_history = ChatMessageHistory()

agent_with_chat_history = RunnableWithMessageHistory(
    agent_executor,
    lambda session_id: message_history,
    input_messages_key="input",
    history_messages_key="chat_history",
)

agent_with_chat_history.invoke(
    {"input": "你好,我是老陈"},
    config={"configurable": {"session_id": "lc"}},
)

agent_with_chat_history.invoke(
    {"input": "你知道我的名字吗?"},
    config={"configurable": {"session_id": "lc"}},
)

小结

通过本文,我们不仅了解了如何在创作中应用大模型智能体,还展示了如何构建一个具备在线搜索能力和本地数据检索功能的代理框架。希望这篇博客能帮助你更好地理解和应用大模型智能体,以及如何利用它们来增强你的创作能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值