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.



