From b5c17ff188ab7cdd4033bb7b13cf3bc3dd8176c8 Mon Sep 17 00:00:00 2001 From: David Duong Date: Mon, 30 Oct 2023 23:19:32 +0100 Subject: [PATCH] Force List[Tuple[str,str]] to chat history widget (#12530) Co-authored-by: Bagatur --- .../openai-functions-agent/openai_functions_agent/agent.py | 4 ++-- templates/rag-conversation/rag_conversation/chain.py | 4 ++-- templates/xml-agent/xml_agent/agent.py | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/templates/openai-functions-agent/openai_functions_agent/agent.py b/templates/openai-functions-agent/openai_functions_agent/agent.py index ee8a2eb2ebd..1c06be2d947 100644 --- a/templates/openai-functions-agent/openai_functions_agent/agent.py +++ b/templates/openai-functions-agent/openai_functions_agent/agent.py @@ -5,7 +5,7 @@ from langchain.agents.format_scratchpad import format_to_openai_functions from langchain.agents.output_parsers import OpenAIFunctionsAgentOutputParser from langchain.chat_models import ChatOpenAI from langchain.prompts import ChatPromptTemplate, MessagesPlaceholder -from langchain.pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema.messages import AIMessage, HumanMessage from langchain.tools.render import format_tool_to_openai_function from langchain.tools.tavily_search import TavilySearchResults @@ -57,7 +57,7 @@ agent = ( class AgentInput(BaseModel): input: str - chat_history: List[Tuple[str, str]] + chat_history: List[Tuple[str, str]] = Field(..., extra={"widget": {"type": "chat"}}) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True).with_types( diff --git a/templates/rag-conversation/rag_conversation/chain.py b/templates/rag-conversation/rag_conversation/chain.py index 301c7d8263a..fee8d946945 100644 --- a/templates/rag-conversation/rag_conversation/chain.py +++ b/templates/rag-conversation/rag_conversation/chain.py @@ -15,7 +15,7 @@ from langchain.schema.runnable import ( RunnablePassthrough, ) from langchain.vectorstores import Pinecone -from pydantic import BaseModel +from pydantic import BaseModel, Field if os.environ.get("PINECONE_API_KEY", None) is None: raise Exception("Missing `PINECONE_API_KEY` environment variable.") @@ -87,7 +87,7 @@ def _format_chat_history(chat_history: List[Tuple[str, str]]) -> List: # User input class ChatHistory(BaseModel): - chat_history: List[Tuple[str, str]] + chat_history: List[Tuple[str, str]] = Field(..., extra={"widget": {"type": "chat"}}) question: str diff --git a/templates/xml-agent/xml_agent/agent.py b/templates/xml-agent/xml_agent/agent.py index fd1632c18f8..0c52d3ffc32 100644 --- a/templates/xml-agent/xml_agent/agent.py +++ b/templates/xml-agent/xml_agent/agent.py @@ -3,7 +3,7 @@ from typing import List, Tuple from langchain.agents import AgentExecutor from langchain.agents.format_scratchpad import format_xml from langchain.chat_models import ChatAnthropic -from langchain.pydantic_v1 import BaseModel +from langchain.pydantic_v1 import BaseModel, Field from langchain.schema import AIMessage, HumanMessage from langchain.tools import DuckDuckGoSearchRun from langchain.tools.render import render_text_description @@ -44,7 +44,7 @@ agent = ( class AgentInput(BaseModel): question: str - chat_history: List[Tuple[str, str]] + chat_history: List[Tuple[str, str]] = Field(..., extra={"widget": {"type": "chat"}}) agent_executor = AgentExecutor(