Что мне следует передать в параметре ретривера в функции ConversationalRetrievalChain, чтобы создать диалогового бота?Python

Программы на Python
Ответить
Anonymous
 Что мне следует передать в параметре ретривера в функции ConversationalRetrievalChain, чтобы создать диалогового бота?

Сообщение Anonymous »

Я создаю чат-бота, который генерирует запрос Oracle на основе вопроса пользователя. Я предоставил структуры таблиц и другие вещи, связанные с БД, в SystemMessage и вопрос пользователя в HumanMessage. Он работал нормально, и запросы создавались.
Теперь я хочу, чтобы это был диалоговый бот, чтобы он мог быть интерактивным и генерировать/изменять ответы в зависимости от требований пользователя.< /p>
Поскольку для встраивания и векторного хранения не требуется какой-либо документ, что мне следует передать в параметре ретривера.
Мой код:import logging
import json
import langchain
import os

from azure.identity import ClientSecretCredential

from langchain.chains.conversational_retrieval.base import ConversationalRetrievalChain
from langchain.prompts import SystemMessagePromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate,MessagesPlaceholder
from langchain_openai import AzureChatOpenAI
from langchain.memory import ConversationBufferMemory

from src.dao.dbConnect import getFromDb

langchain.verbose = False
langchain.debug = False
langchain.llm_cache = False

logging.basicConfig(level=logging.INFO)
logger = logging.getLogger("uvicorn")

def getResponseFromModel(guide, question, environment):

chat_history = []
memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)

messages = [
SystemMessagePromptTemplate.from_template(guide),
MessagesPlaceholder(variable_name="chat_history"),
HumanMessagePromptTemplate.from_template(question)
]

client_id = os.environ["CLIENT_ID"]
client_key =os.environ["CLIENT_KEY"]
credential = ClientSecretCredential(
client_id=client_id,
client_secret=client_key,
tenant_id=os.environ["TENANT_ID"]
)

token = credential.get_token("https://cognitiveservices.azure.com/.default")

model = AzureChatOpenAI(
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
openai_api_version=os.environ["AZURE_OPENAI_API_VERSION"],
azure_deployment=os.environ["AZURE_OPENAI_CHAT_DEPLOYMENT_NAME"],
openai_api_key=token.token,
temperature=0,
top_p = 0.1
)

prompt = ChatPromptTemplate.from_messages(messages=messages)

logger.info("Fetching Response from model")

qa = ConversationalRetrievalChain.from_llm(
llm= model,
retriever= , #Here I am getting the issue
memory=memory,
combine_docs_chain_kwargs={"prompt": prompt}
)

response = qa({"question": question, "chat_history": chat_history})

#response = model.invoke(message)
response_content = json.loads(response["answer"].strip('```json').strip('```').strip())
result = ""
if response_content['question_type'] == 'sql':
df = getFromDb(
str(response_content['response']).replace("sql", "").replace("`", ""), environment
)
result = json.dumps({"query": (response_content['response']).replace("sql", "").replace("`", ""), "result": df})
else:
result = json.dumps({"result": (response_content['response']).replace("sql", "").replace("`", "")})
return result


Подробнее здесь: https://stackoverflow.com/questions/792 ... ain-functi
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»