Spaces:
Sleeping
Sleeping
| import os | |
| import google.generativeai as genai | |
| from fastapi import FastAPI, HTTPException | |
| from pydantic import BaseModel | |
| app = FastAPI() | |
| # Получаем ключ | |
| genai.configure(api_key=os.environ.get("GEMINI_API_KEY")) | |
| # ВАЖНО: Убедись, что в requirements.txt версия >=0.7.2, иначе flash не заработает | |
| model = genai.GenerativeModel("gemini-1.5-flash") | |
| class RequestData(BaseModel): | |
| context: str | |
| mood: str | |
| async def complete_text(data: RequestData): | |
| try: | |
| # Настройка личности | |
| tone_instruction = "" | |
| if data.mood == "fun": | |
| tone_instruction = "Отвечай весело, используй сленг, эмодзи." | |
| elif data.mood == "serious": | |
| tone_instruction = "Отвечай официально, сухо, деловой стиль." | |
| elif data.mood == "angry": | |
| tone_instruction = "Отвечай пассивно-агрессивно, с сарказмом." | |
| else: | |
| tone_instruction = "Отвечай спокойно и нейтрально." | |
| # ТВОЙ НОВЫЙ ПРОМПТ | |
| prompt = ( | |
| f"System: {tone_instruction}. " | |
| f"User input might be in wrong keyboard layout (e.g. 'ghbdtn' instead of 'привет'). " | |
| f"If input looks like encoded Russian, decode it internally and complete the Russian phrase. " | |
| f"If input is English, just complete it. " | |
| f"Do not repeat the input. Output ONLY the completion text.\n\n" | |
| f"User Input: {data.context}\nOutput:" | |
| ) | |
| response = model.generate_content(prompt) | |
| return {"completion": response.text.strip()} | |
| except Exception as e: | |
| # Вывод ошибки в ответ, чтобы клиент увидел причину | |
| raise HTTPException(status_code=500, detail=str(e)) |