Testing the Hugging Face Inference API (Free Tier)
Learn how to use Hugging Face's free inference API for AI model testing.
Prerequisites
- Python 3.8+
-
requestslibrary:pip install requests - Hugging Face account (free at https://huggingface.co)
Quick Start
import requests
import os
# Get your free token from Hugging Face settings
HF_TOKEN = os.getenv("HF_TOKEN")
# Use a free model (no auth required for some)
MODEL = "google/flan-t5-base"
def query_hf(prompt: str, model: str = MODEL) -> str:
"""Query Hugging Face Inference API."""
url = f"https://api-inference.huggingface.co/models/{model}"
headers = {"Authorization": f"Bearer {HF_TOKEN}"} if HF_TOKEN else {}
response = requests.post(
url,
headers=headers,
json={"inputs": prompt},
timeout=30
)
if response.status_code == 200:
return response.json()[0]["generated_text"]
else:
raise Exception(f"Error: {response.status_code} - {response.text}")
# Usage
if __name__ == "__main__":
prompt = "Translate to French: Hello, how are you?"
try:
result = query_hf(prompt)
print(f"Prompt: {prompt}")
print(f"Result: {result}")
except Exception as e:
print(f"Error: {e}")
Testing Different Free Models
# Text generation
models = [
"gpt2",
"facebook/opt-350m",
"google/flan-t5-base",
"microsoft/DialoGPT-small"
]
for model in models:
try:
result = query_hf("The future of AI is", model)
print(f"{model}: {result[:100]}...")
except Exception as e:
print(f"{model}: Error - {e}")
Error Handling & Rate Limits
import time
def robust_query(prompt: str, model: str = MODEL, retries: int = 3) -> str:
"""Query with exponential backoff for rate limits."""
for attempt in range(retries):
try:
return query_hf(prompt, model)
except Exception as e:
if "429" in str(e) or "503" in str(e):
wait = 2 ** attempt
print(f"Rate limited. Waiting {wait}s...")
time.sleep(wait)
else:
raise
raise Exception("Max retries exceeded")
Conclusion
Hugging Face's free inference API provides access to thousands of models without any cost. Perfect for experimentation, prototyping, and learning AI integration.
Top comments (0)