A framework to analyse the consistency of repeated requests to an LLM or LLM based Agent
Project description
LLM Response Analysis Framework
Welcome to a LLM Response Analysis Framework! This tool is designed to dive deep into the heart of Language Models (LLMs) and their intriguing responses. Designed for researchers, developers, and LLM enthusiasts, the framework offers a way to examine the consistency of Large Language Models and Agents build on them.
Features | Screenshots | Getting Started | Development
Features
-
Dynamic LLM Integration Seamlessly connect with various LLM providers and models to fetch responses using a flexible architecture. Following integrations are available.
- Openai
- Groq
- Ollama
-
LangChain Structured Output Chain Analysis Seamlessly connect with a LangChain Structured Output and check for the consistency of responses. See this documentation for further information.
-
Semantic Similarity Calculation Understand the nuanced differences between responses by calculating their semantic distances.
-
Diverse Response Analysis Group, count, and analyze responses to highlight both their uniqueness and redundancy.
-
Rich Presentation Utilize beautiful tables and text differences to present analysis results in an understandable and visually appealing manner.
Screenshots
Below are some screenshots showcasing the framework in action:
GPT-3.5 Example
GPT-4 Example
LangChain Structure Output example (using gpt-4o)
These visuals provide a glimpse into how the framework processes and presents data from different LLM versions, highlighting the flexibility and depth of analysis possible with this tool.
Getting Started
Prerequisites
- Ensure you have Python 3.10 or higher installed on your system.
Installation
Option 1. pipx is recommended
Use pipx for det
rather than install it on the base python. pipx is awesome for installing and running Python applications in isolated environments.
Get pipx here: https://pipx.pypa.io/stable/
Install det
using pipx:
pipx install det
Option 2. If you live danagerously, chaos is your middle name, or you don't want to use pipx
I understand that this approach heavily depends on the state of my system, it may not work and may result in pythonic module hell induced headaches
.Are you sure you want to do this?
I really know what I'm doing or plan on throwing away my computer
OK, no more checking - fill your boots.
Install det
using pip:
pip install det
Configuration
Before using det
, configure your LLM and embeddings provider API keys
export OPENAI_API_KEY=sk-makeSureThisIsaRealKey
for groq to configure groq client API key.
export GROQ_API_KEY=gsk-DUMMYKEYISTHIS
Basic Usage
To get a list of all the arguments and their descriptions, use:
det --help
a basic analysis of OpenAI's gpt-4o-mini model
det check-responses \
--iterations 2 \
--llm-provider OpenAI \
--llm-model gpt-4o-mini \
--embeddings-provider OpenAI \
--embeddings-model text-embedding-ada-002
for Groq
use --llm-provider as Groq
for Ollama
use --llm-provider as Ollama
LangChain Structured Output Chains
a LangChain Structured Output example
note, this requires the prompt details /resources/prompt.json and a pydantic output class /resources/risk_definition.py
det check-chain \
--iterations 20 \
--embeddings-provider OpenAI \
--embeddings-model text-embedding-ada-002 \
--prompt-config ./resources/prompts.json \
--prompt-group RiskDefinition \
--input-variables-str "risk_statement=There is a risk that failure to enforce multi-factor authentication can cause unauthorized access to user accounts to occur, leading to account takeover that could lead to financial fraud and identity theft issues for customers."
Development
Prerequisites
Setup Instructions
-
Clone the repository:
git clone https://github.com/thompsonson/det.git cd det
-
Set up the Poetry environment:
poetry install
-
Activate the Poetry shell:
poetry shell
You're now ready to start development on the det
project!
Documentation
The documentation is in the module headings. I'll probably move it out at some point but that's good for now :)
Support and Contribution
For support, please open an issue on the GitHub repository. Contributions are welcome.
License
This project is licensed under the MIT License - see the LICENSE
file for details.
Project details
Release history Release notifications | RSS feed
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
File details
Details for the file det-0.5.0.tar.gz
.
File metadata
- Download URL: det-0.5.0.tar.gz
- Upload date:
- Size: 20.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a4c7520401ab4a97e5fc00d8d1789684812391c795bc4f86d542e1d8240a51a |
|
MD5 | 1db69021bd8e214cbdafd146acf9a441 |
|
BLAKE2b-256 | 4669e419339e03a61be4aee3721a19ed00351d2265c735473c1af6337fac9712 |
File details
Details for the file det-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: det-0.5.0-py3-none-any.whl
- Upload date:
- Size: 26.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.10.15 Linux/6.8.0-1014-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 414c10d404fc839d8ec28d861520ca36ab5c67983e51655e4108db48ac8b1931 |
|
MD5 | 7d66a7fdbb64e7e58991e927417926d5 |
|
BLAKE2b-256 | f157e226352e1ac6906ca2c533e391ca58a2d39d777ab8eeb6e3ac7d54a61e7a |