LLM-Prompt
Mit den vorliegenden Suchergebnissen kann nun eine Aufforderung generiert werden, die an das LLM gesendet werden soll. Die Aufforderung muss die vom Benutzer ursprünglich gestellte Frage, die in der Abrufphase ermittelten relevanten Textpassagen sowie Anweisungen an das LLM enthalten, dass die Antwort aus den enthaltenen Textpassagen stammen soll.
Um die Eingabeaufforderung darzustellen, verwendet die Anwendung die render_template() -Funktion von Flask:
qa_prompt = render_template('rag_prompt.txt', question=question, docs=docs)Die in diesem Aufruf referenzierte Vorlagendatei befindet sich in 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:Sie können Änderungen an dieser Vorlage vornehmen, wenn Sie deren Auswirkungen auf die Qualität der Chatbot-Antworten sehen möchten. Achten Sie aber stets darauf, die for-Schleife beizubehalten, die die abgerufenen Passagen ausgibt.