{"slug": "python-ai-tutorial-for-beginners-your-first-ai-integration", "title": "Python AI Tutorial for Beginners: Your First AI Integration", "summary": "A developer published a beginner tutorial showing how to add AI capabilities to Python projects using free hosted APIs from OpenRouter, Hugging Face, and Google AI Studio, with no GPU or machine-learning expertise required. The walkthrough provides copy-paste functions for chat completions, text generation, and translation, plus a class that uses an LLM to review code for bugs, performance, and security issues.", "body_md": "Learn how to integrate AI into your Python projects using free APIs - no GPU required, no complex setup.\n\nAI integration doesn't require expensive hardware or complex ML knowledge. With free APIs like OpenRouter, Hugging Face, and Google AI Studio, you can add AI capabilities to any Python project in minutes.\n\n`requests` library: `pip install requests`\n\n``` python\nimport requests\nimport os\n\ndef openrouter_chat(prompt: str, model: str = \"google/gemini-2.0-flash-exp:free\") -> str:\n    \"\"\"Chat with free models via OpenRouter.\"\"\"\n    response = requests.post(\n        \"https://openrouter.ai/api/v1/chat/completions\",\n        headers={\n            \"Authorization\": f\"Bearer {os.getenv('OPENROUTER_API_KEY')}\",\n            \"Content-Type\": \"application/json\"\n        },\n        json={\n            \"model\": model,\n            \"messages\": [{\"role\": \"user\", \"content\": prompt}],\n            \"temperature\": 0.7,\n            \"max_tokens\": 500\n        },\n        timeout=30\n    )\n    response.raise_for_status()\n    return response.json()[\"choices\"][0][\"message\"][\"content\"]\n\n# Usage\nprint(openrouter_chat(\"Write a Python function to reverse a string\"))\npython\nimport requests\nimport os\n\ndef hf_inference(prompt: str, model: str = \"google/flan-t5-base\") -> str:\n    \"\"\"Use Hugging Face free inference API.\"\"\"\n    response = requests.post(\n        f\"https://api-inference.huggingface.co/models/{model}\",\n        headers={\"Authorization\": f\"Bearer {os.getenv('HF_TOKEN')}\"} if os.getenv('HF_TOKEN') else {},\n        json={\"inputs\": prompt},\n        timeout=30\n    )\n    response.raise_for_status()\n    return response.json()[0][\"generated_text\"]\n\n# Usage\nprint(hf_inference(\"Translate to Spanish: Hello world\"))\nphp\nimport requests\nimport os\n\ndef gemini_generate(prompt: str) -> str:\n    \"\"\"Generate text with Google's free Gemini model.\"\"\"\n    api_key = os.getenv(\"GEMINI_API_KEY\")\n    url = f\"https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key={api_key}\"\n\n    response = requests.post(\n        url,\n        headers={\"Content-Type\": \"application/json\"},\n        json={\n            \"contents\": [{\"parts\": [{\"text\": prompt}]}],\n            \"generationConfig\": {\"temperature\": 0.7, \"maxOutputTokens\": 500}\n        },\n        timeout=30\n    )\n    response.raise_for_status()\n    return response.json()[\"candidates\"][0][\"content\"][\"parts\"][0][\"text\"]\n\n# Usage\nprint(gemini_generate(\"Explain decorators in Python\"))\npython\nimport requests\nimport os\nimport json\n\nclass AICodeReviewer:\n    def __init__(self):\n        self.api_key = os.getenv(\"OPENROUTER_API_KEY\")\n        self.url = \"https://openrouter.ai/api/v1/chat/completions\"\n\n    def review(self, code: str, language: str = \"python\") -> dict:\n        prompt = f\"\"\"Review this {language} code for:\n        1. Bugs and logic errors\n        2. Performance issues\n        3. Best practices\n        4. Security concerns\n\n        Code:\n        ```\n{% endraw %}\n{language}\n        {code}\n{% raw %}\n\n        ```\n\n        Return JSON: {{\"issues\": [...], \"suggestions\": [...], \"rating\": 1-10}}\"\"\"\n\n        response = requests.post(\n            self.url,\n            headers={\n                \"Authorization\": f\"Bearer {self.api_key}\",\n                \"Content-Type\": \"application/json\"\n            },\n            json={\n                \"model\": \"google/gemini-2.0-flash-exp:free\",\n                \"messages\": [{\"role\": \"user\", \"content\": prompt}],\n                \"temperature\": 0.3,\n                \"max_tokens\": 1000\n            },\n            timeout=30\n        )\n        response.raise_for_status()\n        return json.loads(response.json()[\"choices\"][0][\"message\"][\"content\"])\n\n# Usage\nreviewer = AICodeReviewer()\ncode = \"\"\"\ndef process_users(users):\n    for user in users:\n        if user['age'] > 18:\n            print(user['name'])\n\"\"\"\n\nresult = reviewer.review(code)\nprint(f\"Rating: {result['rating']}/10\")\nfor issue in result['issues']:\n    print(f\"- {issue}\")\npython\nimport time\nimport requests\n\ndef robust_ai_call(func, *args, retries=3, **kwargs):\n    \"\"\"Wrapper with exponential backoff for rate limits.\"\"\"\n    for attempt in range(retries):\n        try:\n            return func(*args, **kwargs)\n        except requests.exceptions.HTTPError as e:\n            if e.response.status_code in (429, 503):\n                wait = 2 ** attempt\n                print(f\"Rate limited, waiting {wait}s...\")\n                time.sleep(wait)\n            else:\n                raise\n    raise Exception(\"Max retries exceeded\")\n\n# Usage\nresult = robust_ai_call(openrouter_chat, \"Hello!\")\n```\n\n`.env` files, never commit API keys`google/gemini-2.0-flash-exp:free`\n`meta-llama/llama-3.1-8b-instruct:free`\n`mistralai/mistral-7b-instruct:free`\n| Provider | Free Models | Rate Limit | Best For | \n|---|---|---|---|\n| OpenRouter | 20+ | Varies | Model variety | \n| Hugging Face | 1000+ | Generous | Specialized models | \n| Google AI | 1 (Gemini) | 15 RPM | Quality, speed | \n| Together.ai | Several | Good | Open source models | \n\nAdding AI to Python is now as simple as making an HTTP request. Start with one provider, experiment with prompts, and build something amazing - all for free!\n\n**Next Steps:**\n\n*Published as part of the AI Tutorials series on Dev.to*", "url": "https://wpnews.pro/news/python-ai-tutorial-for-beginners-your-first-ai-integration", "canonical_source": "https://dev.to/ipsphil_digital/python-ai-tutorial-for-beginners-your-first-ai-integration-2f59", "published_at": "2026-10-12 06:04:20+00:00", "updated_at": "2026-10-12 06:10:20.970876+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-tools", "generative-ai", "developer-tools"], "entities": ["Python", "OpenRouter", "Hugging Face", "Google AI Studio", "Gemini", "Google"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/python-ai-tutorial-for-beginners-your-first-ai-integration", "markdown": "https://wpnews.pro/news/python-ai-tutorial-for-beginners-your-first-ai-integration.md", "text": "https://wpnews.pro/news/python-ai-tutorial-for-beginners-your-first-ai-integration.txt", "jsonld": "https://wpnews.pro/news/python-ai-tutorial-for-beginners-your-first-ai-integration.jsonld"}}