Spaces:
Sleeping
Sleeping
| import os | |
| from dotenv import load_dotenv | |
| import logging | |
| from langchain_google_genai import ChatGoogleGenerativeAI | |
| load_dotenv(dotenv_path="src/configs/.env") | |
| class GeminiWrapper: | |
| def __init__(self, model_name="gemini-2.5-flash", temperature=0): | |
| self.model_name = model_name | |
| self.llm = ChatGoogleGenerativeAI( | |
| model=model_name, | |
| temperature=temperature, | |
| google_api_key=os.getenv("GEMINI_API_KEY") | |
| ) | |
| def generate(self, prompt, history=None): | |
| if history: | |
| # Prepend history to the prompt for context | |
| #history_text = "\n".join([f"User: {h[0]}\nAssistant: {h[1]}" for h in history]) | |
| prompt = f"{history}\nUser: {prompt}" | |
| return self._generate(prompt) | |
| def _generate(self, prompt): | |
| try: | |
| return self.llm.invoke(prompt).content | |
| except Exception as e: | |
| logging.error(f"Gemini generation failed: {e}") | |
| return "Error generating response." | |
| def bind_tools(self, tools): | |
| return self.llm.bind_tools(tools) | |