Код: Выделить всё
def get_response_from_query(db, query, k=4):
docs = db.similarity_search(query, k=k)
docs_page_content = " ".join([d.page_content for d in docs])
chat = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.2)
# Template to use for the system message prompt
template = """
this is a custom prompt template
"""
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
# Human question prompt
human_template = "Answer the following question: {question}"
human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)
chat_prompt = ChatPromptTemplate.from_messages(
[system_message_prompt, human_message_prompt]
)
chain = LLMChain(llm=chat, prompt=chat_prompt)
response = chain.run(question=query, docs=docs_page_content)
response = response.replace("\n", "")
return response, docs
Во-первых, две первые строки кода, которые выполняют поиск по подобию нарушает код из-за этой ошибки:
[*]InvalidRequestError: '$.input' недействителен. Пожалуйста, проверьте ссылку на API: https://platform.openai.com/docs/api-reference -- docs = Vectorstore.similarity_search(user_question, k=4)
Если удалить эти строки, остальная часть кода просто ничего не вернет интерфейсу.
Я попробовал использовать другой метод, а именно:
Код: Выделить всё
def get_conversation_chain(vectorstore):
llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0.2)
memory = ConversationBufferMemory(memory_key='chat_history', return_messages=True)
conversation_chain = ConversationalRetrievalChain.from_llm(llm=llm,retriever=vectorstore.as_retriever(),memory=memory)
return conversation_chain
Здесь я создаю подсказку так же, как и в своем первом коде, но продолжаю получать ошибки, связанные с тем, что в заполнителе {docs} или {user_question} отсутствует контекст:
ValidationError: 1 ошибка проверки для корневого контекста StuffDocumentsChain имя_переменной_документа не найдена в llm_chain input_variables: [] (type=value_error)
Поскольку поиск по сходству не удался , я не могу ничего передать в {docs}, даже удаление не помогает. Откуда берется {context}?
Что мне здесь не хватает? Какой метод мне следует использовать: ConversationalRetrivalChain или LLMChain? Почему поиск по сходству не работает?
Мне нужно только сказать LLM, чтобы он не отвечал, если он не уверен, и для этого мне нужно отправить собственный шаблон/подсказку с приглашением пользователя. .
Я новичок в искусственном интеллекте, пожалуйста, помогите.
Как указано выше, я попробовал два метода
Подробнее здесь: https://stackoverflow.com/questions/765 ... s-llmchain
Мобильная версия