-
Notifications
You must be signed in to change notification settings - Fork 4.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: xml component working properly #3822
Conversation
…omponent to enhance agent functionality and interaction with Language Model.
This pull request is automatically being deployed by Amplify Hosting (learn more). |
value="""You are a helpful assistant. Help the user answer any questions. | ||
You have access to the following tools: | ||
|
||
{tools} | ||
|
||
In order to use a tool, you can use <tool></tool> and <tool_input></tool_input> tags. You will then get back a response in the form <observation></observation> | ||
|
||
For example, if you have a tool called 'search' that could run a google search, in order to search for the weather in SF you would respond: | ||
|
||
<tool>search</tool><tool_input>weather in SF</tool_input> | ||
|
||
<observation>64 degrees</observation> | ||
|
||
When you are done, respond with a final answer between <final_answer></final_answer>. For example: | ||
|
||
<final_answer>The weather in SF is 64 degrees</final_answer> | ||
|
||
Begin! | ||
|
||
Question: {input} | ||
|
||
{agent_scratchpad} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changing the prompt shouldn't be necessary and is probably not a good idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ogabrielluiz Actually, I will just remove the first "enter" space to improve the UX.
…ontent for better clarity and consistency 🐛 (XMLAgent.py): Ensure user_prompt contains 'input' key before creating agent runnable to prevent errors
I updated it to work for me. Only thing I"m uncertain of is the chat history: from langchain.agents import create_xml_agent
from langchain_core.prompts import ChatPromptTemplate, PromptTemplate, HumanMessagePromptTemplate
from langflow.base.agents.agent import LCToolsAgentComponent
from langflow.inputs import MultilineInput
from langflow.inputs.inputs import HandleInput
class XMLAgentComponent(LCToolsAgentComponent):
display_name: str = "XML Agent"
description: str = "Agent that uses tools formatting instructions as xml to the Language Model."
icon = "LangChain"
beta = True
name = "XMLAgent"
inputs = LCToolsAgentComponent._base_inputs + [
HandleInput(name="llm", display_name="Language Model", input_types=["LanguageModel"], required=True),
MultilineInput(
name="chat_history",
display_name="Chat History",
value=""),
MultilineInput(
name="user_prompt",
display_name="Prompt",
value="""
You are a helpful assistant. Help the user answer any questions.
You have access to the following tools:
{tools}
In order to use a tool, you can use <tool></tool> and <tool_input></tool_input> tags. You will then get back a response in the form <observation></observation>
For example, if you have a tool called 'search' that could run a google search, in order to search for the weather in SF you would respond:
<tool>search</tool><tool_input>weather in SF</tool_input>
<observation>64 degrees</observation>
When you are done, respond with a final answer between <final_answer></final_answer>. For example:
<final_answer>The weather in SF is 64 degrees</final_answer>
Begin!
Previous Conversation:
{chat_history}
Question: {input}
{agent_scratchpad}
""",
),
]
def create_agent_runnable(self):
messages = [
("placeholder", "{chat_history}"),
HumanMessagePromptTemplate(prompt=PromptTemplate(input_variables=["input"], template=self.user_prompt)),
("ai", "{agent_scratchpad}"),
]
prompt = ChatPromptTemplate.from_messages(messages)
return create_xml_agent(self.llm, self.tools, prompt) |
hi @zcasanova |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
approve for test running
requested by @Cristhianzl
📝 (XMLAgent.py): Add support for chat history data input in XMLAgentComponent to enhance agent functionality and interaction with Language Model.