A plug-and-play SDK for de-hallucinating outputs from LLMs using semantic entropy and trained classifiers
Project description
HAPI SDK
A plug-and-play SDK for detecting and reducing hallucinations in Large Language Model outputs using semantic entropy analysis and trained classifiers.
Features
- Hallucination Detection: Uses trained classifiers to detect hallucinations in LLM outputs
- Semantic Entropy Analysis: Advanced semantic analysis to identify uncertain or inconsistent outputs
- Easy Integration: Simple API that works with any Hugging Face model
- Multiple Detection Methods: Combines classifier-based and semantic entropy-based approaches
- Real-time Analysis: Generate and analyze outputs in real-time
Installation
pip install HAPI-SDK
Quick Start
from dehallucinate_sdk import DeHallucinationClient
# Initialize the client
client = DeHallucinationClient(
model_id="meta-llama/Llama-2-7b-chat-hf",
license_key="your-license-key"
)
# Generate and analyze output
prompt = "Explain quantum entanglement in simple terms."
output, flagged_sentences = client.generate_output(prompt)
print("Generated Output:", output)
print("Flagged Sentences:", flagged_sentences)
Available Methods
The DeHallucinationClient exposes the following main methods:
1. generate_output(prompt, max_tokens=512)
Generates a response and performs hallucination analysis in one step.
output, flagged_sentences = client.generate_output(
"What is the capital of France?",
max_tokens=100
)
2. semantic_entropy_check(prompt, num_generations=5)
Analyzes semantic entropy to detect potential hallucinations.
entropy_score, is_hallucinated = client.semantic_entropy_check(
"Tell me about the history of artificial intelligence"
)
3. sentence_contains_hallucination(sentence, context="")
Checks if a specific sentence contains hallucinations.
is_hallucinated = client.sentence_contains_hallucination(
"The capital of France is Berlin.",
context="Geography facts"
)
4. generate(prompt, max_tokens=512)
Simple text generation without hallucination analysis.
output = client.generate("Write a story about space exploration", max_tokens=200)
5. generate_sentence(prompt)
Generates a single sentence response.
sentence = client.generate_sentence("Complete this: The best way to learn programming is")
Supported Models
- Llama-2-7b-chat (meta-llama/Llama-2-7b-chat-hf)
- Falcon-40b (tiiuae/falcon-40b)
- Llama-2-7b (meta-llama/Llama-2-7b-hf)
- MPT-7b (mosaicml/mpt-7b)
- More models coming soon!
Configuration
Environment Variables
export OPENAI_API_KEY="your_openai_api_key"
export HUGGINGFACE_API_KEY="your_hf_token"
Advanced Usage
# Configure with custom parameters
client = DeHallucinationClient(
model_id="meta-llama/Llama-2-7b-chat-hf",
license_key="your-license-key",
device="cuda", # or "cpu"
temperature=0.7,
use_semantic_entropy=True,
confidence_threshold=0.8
)
# Batch processing
prompts = [
"What causes climate change?",
"How do vaccines work?",
"Explain machine learning basics"
]
results = []
for prompt in prompts:
output, flagged = client.generate_output(prompt)
results.append({"prompt": prompt, "output": output, "flagged": flagged})
Error Handling
try:
output, flagged = client.generate_output("Your prompt here")
except Exception as e:
print(f"Error during generation: {e}")
Contributing
We welcome contributions! Please see our GitHub repository for more information.
License
MIT License - see LICENSE file for details.
Support
For questions, suggestions, or issues, please contact us or open an issue on GitHub.
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
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 hapi_sdk-0.2.21.tar.gz.
File metadata
- Download URL: hapi_sdk-0.2.21.tar.gz
- Upload date:
- Size: 15.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
32b19221595214fe9daca3cdfc7dbebff35cecc8aca683cee98f073f5e52a895
|
|
| MD5 |
e52976f348b4358e9aba5603325e2071
|
|
| BLAKE2b-256 |
d14f2cedaae0d2bc14e9163a6c3e125dba62c5b17bef0e7913ccb4811b81cb43
|
File details
Details for the file hapi_sdk-0.2.21-py3-none-any.whl.
File metadata
- Download URL: hapi_sdk-0.2.21-py3-none-any.whl
- Upload date:
- Size: 16.0 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71af6b5836fd13d714a4764dfedb9e5ffd2db445711b95a0e9d4f06aaf7bb232
|
|
| MD5 |
ce0b7b0e02acdc674a470759b34c56ee
|
|
| BLAKE2b-256 |
cfb4e99c172a4bb4f2b09121408c7614742469007b14a45736acc6802fa3bed8
|