LLM Prompt
Com os resultados da pesquisa em mãos, agora é possível gerar um prompt para enviar ao LLM. O enunciado deve incluir a pergunta original enviada pelo usuário, as passagens relevantes obtidas na fase de recuperação e instruções para o LLM indicando que a resposta deve ser extraída das passagens incluídas.
Para exibir o prompt, o aplicativo usa a função render_template() do Flask:
qa_prompt = render_template('rag_prompt.txt', question=question, docs=docs)O arquivo de modelo referenciado nesta chamada está em api/templates/rag_prompt.txt.
Use the following passages to answer the user's question.
Each passage has a NAME which is the title of the document.
When answering, give the source name of the passages you are answering from at the end.
Put them in a comma separated list, prefixed with SOURCES:.
Example:
Question: What is the meaning of life?
Response:
The meaning of life is 42.
SOURCES: Hitchhiker's Guide to the Galaxy
If you don't know the answer, just say that you don't know, don't try to make up an answer.
----
{% for doc in docs -%}
---
NAME: {{ doc.metadata.name }}
PASSAGE:
{{ doc.page_content }}
---
{% endfor -%}
----
Question: {{ question }}
Response:Você pode fazer alterações neste modelo se quiser ver o efeito delas na qualidade das respostas do chatbot. Mas certifique-se sempre de preservar o loop "for" que renderiza as passagens recuperadas.