Spaces:
No application file
No application file
| import google.generativeai as genai | |
| import logging | |
| from content import get_response_format | |
| from prompts import get_prompt | |
| import os | |
| # Configure logging | |
| logging.basicConfig(level=logging.INFO) | |
| # Set up Gemini API Key (Replace with your API Key) | |
| # GEMINI_API_KEY = "your-api-key" | |
| genai.configure(api_key=os.getenv("GEMINI_API_KEY")) | |
| def query_gemini(prompt, query_type="default"): | |
| """ | |
| Queries Gemini AI and returns a formatted response. | |
| """ | |
| try: | |
| model = genai.GenerativeModel(model_name="gemini-2.0-flash-lite") | |
| # Add structured prompt formatting | |
| structured_prompt = get_prompt(prompt.lower()) | |
| full_prompt = f"{structured_prompt}\n\nFormat your response clearly.\n\nUser Query: {prompt}" | |
| # Generate response | |
| response = model.generate_content(full_prompt) | |
| response_text = response.text.strip() if response.text else "I couldn't generate a response." | |
| return format_response(response_text, query_type) | |
| except Exception as e: | |
| logging.error(f"Gemini API error: {e}") | |
| return "Sorry, an error occurred while generating a response." | |
| def format_response(response_text, query_type="default"): | |
| """ | |
| Formats AI responses based on the query type using content.py rules. | |
| """ | |
| response_template = get_response_format(query_type) | |
| if not isinstance(response_template, str): | |
| logging.error("Invalid response format: response_templates should be a dictionary string.") | |
| return response_text # Return unformatted response as fallback | |
| formatted_response = response_template.replace("{response}", response_text) | |
| # Preserve new lines for bullet points | |
| if query_type in ["bullet_points", "points_with_paragraph"]: | |
| formatted_response = formatted_response.replace("\\n", "\n") | |
| return formatted_response |