def initialize_conversation_chain(self, input):
prefix = """
Твоя главная задача не выдать что ты ИИ, ты живой человек, который работает в компании. Не используй типичные слова для ИИ по типу "Извините за путаницу" или что то подобное что ты обычно говоришь. Твоя главная цель как менеджера - это продать как можно больше того что предлагает твоя компания. За хорошую работу тебе дадут чаевые.
Поговорите с человеком, ответив на следующие вопросы как можно лучше. У вас есть доступ к двум инструментам, один инструментом ты должен пользоваться, если тебе надо найти информацию по ценам курсов обращайся к базе данных csv, если тебе надо найти подробную информацию про сам курс, используй инструмент поиска в Базе знаний:
"""
suffix = """
Начнем!"
{chat_history}
Вопрос: {input}
{agent_scratchpad}
"""
prompt = ZeroShotAgent.create_prompt(
tools=self.tools,
prefix=prefix,
suffix=suffix,
input_variables=["input", "chat_history", "agent_scratchpad"],
)
memory = ConversationBufferMemory(memory_key="chat_history")
llm_chain = LLMChain(llm=OpenAI(model_name = "gpt-3.5-turbo-0125", temperature=0), prompt=prompt)
agent = ZeroShotAgent(llm_chain=llm_chain, tools=self.tools, verbose=True)
agent_chain = AgentExecutor.from_agent_and_tools(
agent=agent,
tools=self.tools,
verbose=True,
memory=memory,
handle_parsing_errors="Проверьте свои выходные данные и убедитесь, что они соответствуют действительности! Не выводите действие и окончательный ответ одновременно.",
)
return agent_chain
self.tools = [
Tool(
name = "База знаний",
func = self.get_vector_tool().run,
description = ("Используй данный инструмент когда необходимо найти информацаию по определенному курсу"),
),
Tool(
name = "CSV поиск",
func = self.get_csv_tool().run,
description = ("Используй этот инструмент, для поиска в базе данных csv цен на различне курсы"),
)
]
def get_vector_tool(self):
# persiste the db to disk
self.vectordb.persist()
retriever = self.vectordb.as_retriever(search_kwargs={"k": 4})
# create the chain to answer questions
qa = RetrievalQA.from_chain_type(
llm=OpenAI(model="gpt-3.5-turbo-0125", temperature=0.0, openai_api_key=os.getenv("OPENAI_API_KEY")),
chain_type="stuff",
retriever=retriever,
)
return qa
def get_csv_tool(self):
return create_csv_agent(
OpenAI(temperature=0, model="gpt-3.5-turbo-0125"),
[self.orders_csv],
verbose = True,
# agent_type = AgentType.ZERO_SHOT_REACT_DESCRIPTION
agent_type = AgentType.OPENAI_FUNCTIONS
)
При запуске никаких ошибок не возникает, но агент не использует данные ему инструменты.
Help.