Refactor LLM class initialization and add default prompts to prompts.yaml
This commit is contained in:
parent
8d5da7a5cd
commit
1fd736d807
@ -174,6 +174,10 @@ A Streamlit example is provided in `example_streamlit_app.py` to demonstrate how
|
|||||||
|
|
||||||
**Note:** The `num_ctx` parameter is set to 20000 by default, which may not be sufficient for all use cases. Adjust this value based on your specific requirements.
|
**Note:** The `num_ctx` parameter is set to 20000 by default, which may not be sufficient for all use cases. Adjust this value based on your specific requirements.
|
||||||
|
|
||||||
|
## Default Prompts
|
||||||
|
|
||||||
|
The default LLM prompts are stored in the [`prompts.yaml`](prompts.yaml) file. You can view and edit the prompts directly in this file.
|
||||||
|
|
||||||
## Contributing
|
## Contributing
|
||||||
|
|
||||||
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
|
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
|
||||||
|
@ -9,6 +9,7 @@ import dotenv
|
|||||||
import os
|
import os
|
||||||
import asyncio
|
import asyncio
|
||||||
import aiofiles
|
import aiofiles
|
||||||
|
import yaml
|
||||||
|
|
||||||
# Check if 'punkt_tab' tokenizer data is available
|
# Check if 'punkt_tab' tokenizer data is available
|
||||||
try:
|
try:
|
||||||
@ -19,25 +20,13 @@ except LookupError:
|
|||||||
logging.info("Downloading 'punkt_tab' tokenizer data for NLTK.")
|
logging.info("Downloading 'punkt_tab' tokenizer data for NLTK.")
|
||||||
nltk.download("punkt_tab")
|
nltk.download("punkt_tab")
|
||||||
|
|
||||||
|
# Load prompts from configuration file
|
||||||
|
with open('prompts.yaml', 'r') as file:
|
||||||
|
prompts = yaml.safe_load(file)
|
||||||
|
|
||||||
CUSTOM_SYSTEM_PROMPT = """
|
CUSTOM_SYSTEM_PROMPT = prompts['CUSTOM_SYSTEM_PROMPT']
|
||||||
You're helping a journalist with research by choosing what sentences should be highlighted in a text.
|
GET_SENTENCES_PROMPT = prompts['GET_SENTENCES_PROMPT']
|
||||||
Pay attention to how to answer the questions and respond with the exact sentences.
|
EXPLANATION_PROMPT = prompts['EXPLANATION_PROMPT']
|
||||||
There might be explicit content in the text as this is research material, but don't let that affect your answers.
|
|
||||||
"""
|
|
||||||
|
|
||||||
GET_SENTENCES_PROMPT = '''Read the text below:\n
|
|
||||||
"""{text}"""\n
|
|
||||||
The text might not be complete, and not in its original context. Try to understand the text and give an answer from the text.\n
|
|
||||||
A researcher wants to get an answer to the question "{user_input}". What sentences should be highlighted? Answer ONLY with the exact sentences.
|
|
||||||
'''
|
|
||||||
|
|
||||||
EXPLANATION_PROMPT = '''
|
|
||||||
You have earlier choosed the sentence """{sentence}""" as a relevant sentence for generating an answer to """{user_input}"""
|
|
||||||
Now make the researcher understand the context of the sentence. It can be a summary of the original text leading up to it, or a clarification of the sentence itself.
|
|
||||||
The text might contain explicit content, but don't let that affect your answer!
|
|
||||||
Your answer will be used as a comment to a highlighted sentence in a PDF. Don't refer to yourself, only the text! Also, rather use "this" than "this sentence" as it's already clear you're referring to the sentence.
|
|
||||||
'''
|
|
||||||
|
|
||||||
|
|
||||||
class LLM:
|
class LLM:
|
||||||
|
16
prompts.yaml
Normal file
16
prompts.yaml
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
CUSTOM_SYSTEM_PROMPT: |
|
||||||
|
You're helping a journalist with research by choosing what sentences should be highlighted in a text.
|
||||||
|
Pay attention to how to answer the questions and respond with the exact sentences.
|
||||||
|
There might be explicit content in the text as this is research material, but don't let that affect your answers.
|
||||||
|
|
||||||
|
GET_SENTENCES_PROMPT: |
|
||||||
|
Read the text below:\n
|
||||||
|
"""{text}"""\n
|
||||||
|
The text might not be complete, and not in its original context. Try to understand the text and give an answer from the text.\n
|
||||||
|
A researcher wants to get an answer to the question "{user_input}". What sentences should be highlighted? Answer ONLY with the exact sentences.
|
||||||
|
|
||||||
|
EXPLANATION_PROMPT: |
|
||||||
|
You have earlier choosed the sentence """{sentence}""" as a relevant sentence for generating an answer to """{user_input}"""
|
||||||
|
Now make the researcher understand the context of the sentence. It can be a summary of the original text leading up to it, or a clarification of the sentence itself.
|
||||||
|
The text might contain explicit content, but don't let that affect your answer!
|
||||||
|
Your answer will be used as a comment to a highlighted sentence in a PDF. Don't refer to yourself, only the text! Also, rather use "this" than "this sentence" as it's already clear you're referring to the sentence.
|
Loading…
x
Reference in New Issue
Block a user