Spaces:
Runtime error
Runtime error
import os | |
import google.generativeai as genai | |
from loguru import logger | |
class GeminiModel: | |
""" | |
Represents a GeminiModel instance for generating text based on user input. | |
""" | |
def __init__( | |
self, | |
temperature: float, | |
top_p: float, | |
top_k: float, | |
): | |
""" | |
Initializes the GeminiModel by setting up the API key, generation configuration, and starting a chat session. | |
Raises a KeyError if the GEMINI_API_KEY environment variable is not found. | |
""" | |
try: | |
api_key = os.environ["GEMINI_API_KEY"] | |
genai.configure(api_key=api_key) | |
self.generation_config = { | |
"temperature": 1, | |
"top_p": 0.95, | |
"top_k": 40, | |
"max_output_tokens": 8192, | |
"response_mime_type": "text/plain", | |
} | |
self.model = genai.GenerativeModel( | |
model_name="gemini-1.5-pro", | |
generation_config=self.generation_config, | |
) | |
self.chat_session = self.model.start_chat(history=[]) | |
except KeyError as e: | |
logger.error(f"Environment variable not found: {e}") | |
raise | |
def run(self, task: str) -> str: | |
""" | |
Sends a message to the chat session and returns the response text. | |
Raises an Exception if there's an error running the GeminiModel. | |
Args: | |
task (str): The input task or message to send to the chat session. | |
Returns: | |
str: The response text from the chat session. | |
""" | |
try: | |
response = self.chat_session.send_message(task) | |
return response.text | |
except Exception as e: | |
logger.error(f"Error running GeminiModel: {e}") | |
raise | |
# Example usage | |
if __name__ == "__main__": | |
gemini_model = GeminiModel() | |
output = gemini_model.run("INSERT_INPUT_HERE") | |
print(output) | |