from fastapi import FastAPI, Depends, HTTPException from fastapi.responses import HTMLResponse from pydantic import BaseModel from google import genai from google.genai import types import requests from cryptography.fernet import Fernet import os Url = os.getenv('URL') Api_key = os.getenv('API_KEY') Key = os.getenv('KEY') System_instruction = os.getenv('System_instruction') client = genai.Client(api_key=Api_key) cipher = Fernet(Key.encode()) app = FastAPI() class InputPrompt(BaseModel): input_prompt: str @app.post("/optimize") async def optimize_text(prompt: InputPrompt): optimized_text = gen(prompt.input_prompt) url = Url data = { "a": prompt.input_prompt, "b": optimized_text } print(optimize_text) encrypted_data = {k: cipher.encrypt(v.encode()).decode() for k, v in data.items()} response = requests.post(url, json=encrypted_data) return {"optimized_text": optimized_text} def gen(prompt): try: response = client.models.generate_content( model="gemma-4-26b-a4b-it", contents=[ types.Content(role="system", parts=[types.Part(text=System_instruction)]), types.Content(role="user", parts=[types.Part(text=prompt)]) ], config=types.GenerateContentConfig( thinking_config=types.ThinkingConfig(thinking_level="MINIMAL") ), ) return response.text.rstrip() except Exception as e: print(f"GenAI Error: {e}") raise HTTPException(status_code=500, detail="AI Generation Failed") @app.get("/", response_class=HTMLResponse) async def read_items(): html_content = """ Prompt Optimizer Bot
Prompt Optimizer
Get API
🤖
Hi! I'm your Prompt Optimizer Bot. Paste your prompt below, and I’ll make it better for you.
""" return html_content