Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hapi_sdk-0.2.20.tar.gz (15.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hapi_sdk-0.2.20-py3-none-any.whl (16.0 MB view details)

Uploaded Python 3

File details

Details for the file hapi_sdk-0.2.20.tar.gz.

File metadata

  • Download URL: hapi_sdk-0.2.20.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

Hashes for hapi_sdk-0.2.20.tar.gz
Algorithm Hash digest
SHA256 fac5e1d2597976d3e37e85f866ff386e65d56a966864fbd28f7fb75f5226fe5e
MD5 ab63598b67d88bbf1d2395d9f23ff5fb
BLAKE2b-256 b811b82af1c94b51e4e3d2f1a3507cdc1875f9da8814973a478e8a3d90f75195

See more details on using hashes here.

File details

Details for the file hapi_sdk-0.2.20-py3-none-any.whl.

File metadata

  • Download URL: hapi_sdk-0.2.20-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

Hashes for hapi_sdk-0.2.20-py3-none-any.whl
Algorithm Hash digest
SHA256 6cf2dbb7a4563f48aeaafbd817d2a9c058b665792d470d69eaf355ac52a8da7e
MD5 fe6b761651576eebdb03a11fe4217e65
BLAKE2b-256 ff53856c10d9cdd46e16f31505a3c6520666ce3d28036df25b664337cda9cd97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page