Я создаю чат-бота, который генерирует запрос 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
Что мне следует передать в параметре ретривера в функции ConversationalRetrievalChain, чтобы создать диалогового бота? ⇐ Python
Программы на Python
1732605069
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
Подробнее здесь: [url]https://stackoverflow.com/questions/79225659/what-should-i-pass-in-retriever-parameter-in-conversationalretrievalchain-functi[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия