add testing for description
This commit is contained in:
parent
14854ff20a
commit
3b94f13adc
1 changed files with 69 additions and 0 deletions
69
tests/describe.PY
Executable file
69
tests/describe.PY
Executable file
|
@ -0,0 +1,69 @@
|
|||
#! /Library/Frameworks/Python.framework/Versions/3.12/bin/python3
|
||||
# describe.py
|
||||
# To fulfill the test of asking the LLMs to describe
|
||||
|
||||
# Import modules.
|
||||
import ollama
|
||||
import json
|
||||
|
||||
# Add source files.
|
||||
IMPORTED = {'Strings': "data/datasets/strings.JSON", 'Prompts': "tests/config/prompts.json", 'Models': 'tests/config/models.JSON'}
|
||||
|
||||
# Set up the main variables.
|
||||
RESULTS = {};
|
||||
|
||||
# Read the files.
|
||||
for NAME in list(IMPORTED.keys()):
|
||||
try:
|
||||
DATA = json.load(open(IMPORTED[NAME]))
|
||||
except:
|
||||
DATA = open(IMPORTED[NAME]).read()
|
||||
|
||||
IMPORTED[NAME] = DATA;
|
||||
|
||||
# Download the models.
|
||||
def download_models():
|
||||
for MODEL_NAME in IMPORTED["Models"].keys():
|
||||
MODEL_ID = IMPORTED["Models"][MODEL_NAME];
|
||||
ollama.pull(MODEL_ID);
|
||||
|
||||
def format_prompt():
|
||||
PROMPT = f"{IMPORTED['Prompts']["sample"]}\n";
|
||||
|
||||
for GENERATION_TYPE in IMPORTED['Strings']['training'].keys():
|
||||
for TEXT_NUMBER in range(len(IMPORTED['Strings']['training'][GENERATION_TYPE])):
|
||||
PROMPT = f"{PROMPT}\n\n{GENERATION_TYPE}-written #{str(TEXT_NUMBER + 1)}: \n“{'\n\n\t'.join(IMPORTED['Strings']['training'][GENERATION_TYPE][TEXT_NUMBER].strip().split("\n\n"))}”";
|
||||
|
||||
PROMPT = f"{PROMPT}\n\n{IMPORTED['Prompts']["description"]}";
|
||||
|
||||
return (PROMPT);
|
||||
|
||||
# Execute the response.
|
||||
def ask_AI(PROMPT):
|
||||
if len(list(IMPORTED['Models'].keys())):
|
||||
|
||||
for MODEL_NAME in list(IMPORTED['Models'].keys()):
|
||||
MODEL_ID = IMPORTED['Models'][MODEL_NAME];
|
||||
RESULTS[MODEL_NAME] = (ollama.generate(model=MODEL_ID, prompt=PROMPT))['response'].strip();
|
||||
|
||||
return (RESULTS);
|
||||
|
||||
# Display the outputs.
|
||||
# Save all of the strings.
|
||||
# Parameters:
|
||||
# filename: The file name
|
||||
def save_data(**parameters):
|
||||
OUTPUT = parameters['dictionary'];
|
||||
|
||||
if (parameters['filename'].strip()):
|
||||
with open(parameters['filename'], 'w') as file:
|
||||
json.dump(OUTPUT, file);
|
||||
|
||||
# Execute the script.
|
||||
download_models();
|
||||
PROMPT = format_prompt();
|
||||
print(f"Using prompt: \n\t|\t{'\n\t|\t'.join(PROMPT.split("\n"))}");
|
||||
RESULTS = ask_AI(PROMPT);
|
||||
save_data(dictionary=RESULTS, filename='tests/outputs/descriptions.JSON')
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue