我目前正在与 Langchain 项目的聊天代理合作。我的目标是生成要点中的视频内容摘要,但我遇到了一个问题。该代理能够总结内容,但它不会按照我的指示将摘要格式化为要点。
这是我使用的代理初始化代码:
agent = initialize_agent(
agent=AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION,
tools=tools,
llm=llm,
verbose=True,
max_iterations=3,
early_stopping_method='generate',
memory=memory,
)
然后,我向代理提供以下提示:
prompt = "summarize in bullets: https://www.youtube.com/watch?v=n2Fluyr3lbc"
代理提供摘要,但未按预期将输出格式化为要点。相反,它只是生成段落形式的内容。
任何人都可以提供任何指导来说明为什么代理可能不遵循提示中的“要点”说明吗?我是否应该制定提示的特定方法,或者代理初始化中是否有我可能丢失的设置?
感谢任何帮助或指导。
我的尝试和期望:
我已经使用适当的设置初始化了 Langchain 代理,然后向其传递了一个提示以总结 YouTube 视频链接。我的期望是,代理在收到“用项目符号总结:[YouTube 链接]”的提示后,会提供视频内容的项目符号摘要。
我选择这种方法是因为我相信代理应该能够根据 Langchain 模型通常表现出的理解和处理能力来解释和执行该指令。我希望输出是从视频中提取的关键点的简明列表,每个点都以单独的项目符号点的形式呈现。
实际结果:
实际上,代理确实提供了视频内容的摘要,表明它正确处理了视频并执行了指令的“摘要”部分。然而,它并没有按照我的指示将摘要格式化为要点。相反,摘要以单个非结构化段落的形式提供。
因此,虽然代理展示了其总结内容的能力,但它并未遵守格式说明。在这种情况下,挑战在于找出为什么指令的“要点”方面没有得到执行。
我认为目前您可以直接与代理人联系。你能做的就是你可以以要点形式将输出提供给 llm 询问:
你得到了输出
output = agent_executor.run("....")
将其输入llm
from langchain.chat_models import ChatOpenAI
from langchain.schema import (AIMessage, HumanMessage,SystemMessage)
messages=[SystemMessage(content='you are an expert in summarizing documents'),
HumanMessage(content=f"Please provide a short summary of the following text in bullet points:\n output :{output}")]
llm=ChatOpenAI(temperature=0,model_name='gpt-3.5-turbo')
summary=llm(messages)
print(summary)