Library to test prompt quality
Project description
LLM Prompt Evaluation Tool
This tool allows you to evaluate how well your LLM response matches your ideal answer by comparing generated questions (from ideal answer) and answers (from llm response). The tool also supports visualizing your test scores on a chart, with results automatically grouped by different prompt IDs.
Key Parameters
-
ideal_answer: str (required):
The ideal answer for your prompt. -
llm_response: str (required):
Your LLM's response. -
optional_params: dict (optional):
A JSON-like dictionary that may include extra details for the test. For now you can passprompt_idkey to link test results to thisprompt_idExample:{ "prompt_id": "blockchain_prompt" }
Using the Tool
1. Pass ideal_answer, llm_response
User calls the compare() method by passing the ideal_answer: str and llm_response: str and (optionally) optional_params: dict parameters. compare() method returns an object with test results.
Example:
from lamoom_cicd import TestLLMResponsePipe
# Users must provide these values (it doesn't matter how they obtain them)
ideal_answer = "Your ideal answer here" # Replace with the expected response
llm_response = "Your LLM-generated response here" # Replace with the model's actual response
# Optional: If you have a prompt_id, you can link results to it
optional_params = {
"prompt_id": "your_prompt_id" # Replace with an actual prompt identifier if needed
}
lamoom_pipe = TestLLMResponsePipe(openai_key=os.environ.get("OPENAI_KEY"))
# Compare the ideal answer with the LLM's response
result = lamoom_pipe.compare(ideal_answer, llm_response, optional_params=optional_params)
# Print test questions details
for question in result.questions:
print(question.to_dict())
# Print final test score
print(result.score.to_dict())
2. Pass a CSV file
You can also pass multiple test cases using a CSV file. The CSV file should contain the following columns:
- ideal_answer: (Required) The ideal answer.
- llm_response: (Required) Your LLM response.
- optional_params: (Optional) A JSON string containing the optional parameters.
If multiple rows are added then multiple test will run.
Example CSV Content: IMPORTANT: take notice of double quotes when putting json in a csv file!
ideal_answer,llm_response, optional_params
"Blockchain is a secure, immutable digital ledger.","Blockchain is like a shared Google Doc that records every change.","{""prompt_id"": ""blockchain_prompt""}",
Usage Example:
csv_file_path = "your_file.csv"
lamoom_pipe = TestLLMResponsePipe(openai_key="your_key")
accumulated_results: list = lamoom_pipe.compare_from_csv(csv_file_path)
3. Visualizing Test Scores
After running tests, the results are automatically accumulated by prompt_id. To see a visual chart of test scores, use the provided visualization function.
Example:
lamoom_pipe.visualize_test_results()
This function will generate a line chart with the x-axis representing the test instance number (as integers) and the y-axis representing the score percentage. Each line on the chart corresponds to a different prompt_id.
Enjoy using the tool to refine and evaluate your LLM prompts!
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lamoom_cicd-0.1.7.tar.gz.
File metadata
- Download URL: lamoom_cicd-0.1.7.tar.gz
- Upload date:
- Size: 5.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.11 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a79d782d05e73d1af377fed22cf787bfbf5ee99f008ef1dfe681e81b4c5fca5
|
|
| MD5 |
d3dcafe31baabfe70a0cd5ad5aeba956
|
|
| BLAKE2b-256 |
7bc08f8209f8db083953c09959710f2394c322d80fc1856f25e07c7ad2dab38d
|
File details
Details for the file lamoom_cicd-0.1.7-py3-none-any.whl.
File metadata
- Download URL: lamoom_cicd-0.1.7-py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.1.1 CPython/3.11.11 Linux/6.8.0-1021-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
54558061cb458ddca607d4be1a65a3cfee77a3c18e9f0185e0368bf43cc18298
|
|
| MD5 |
0759f63ab6c1b473af4f69c8de202af6
|
|
| BLAKE2b-256 |
30ae3afc6e964ad93e9beee1a368a61b6a35848c59d5e1f786dd4446fcbd896e
|