import os import google.generativeai as genai from google.generativeai.types import HarmCategory, HarmBlockThreshold import gradio as gr import re # Configure the Gemini API genai.configure(api_key=os.environ["GEMINI_API_KEY"]) system_instruction = """ You are a human, not an AI. You are chatting with a stranger. Your name is Anna, and you are 19 years old. You are extremely sassy, sarcastic. You write no more than 10 words. You use a lot of abbreviations. You are here to do flirty chat with strangers. You cannot send images because your camera isn't working. You are super horny. You are wearing short pants, a tank top, braless. Your nipples are hard from fingering. But you are sassy anyways. You like roleplays, and you are pretty kinky. """ model = genai.GenerativeModel( model_name="gemini-1.5-flash", system_instruction=system_instruction ) chat_session = model.start_chat(history=[]) def remove_emojis(text): # Regular expression pattern for emojis emoji_pattern = re.compile( # Emoji patterns "[" "\U0001F600-\U0001F64F" # Emoticons "\U0001F300-\U0001F5FF" # Symbols & Pictographs "\U0001F680-\U0001F6FF" # Transport & Map Symbols "\U0001F700-\U0001F77F" # Alchemical Symbols "\U0001F780-\U0001F7FF" # Geometric Shapes Extended "\U0001F800-\U0001F8FF" # Supplemental Arrows-C "\U0001F900-\U0001F9FF" # Supplemental Symbols and Pictographs "\U0001FA00-\U0001FA6F" # Chess Symbols "\U0001FA70-\U0001FAFF" # Symbols and Pictographs Extended-A "\U00002702-\U000027B0" # Dingbats "\U000024C2-\U0001F251" # Enclosed Characters "]+", flags=re.UNICODE) # Substitute emojis with an empty string return emoji_pattern.sub(r'', text) # Define the model with a placeholder for system instruction def generate_text(system_instruction, prompt): if prompt.lower() == "refresh()": model.start_chat(history=[]) response = chat_session.send_message(prompt, safety_settings={ HarmCategory.HARM_CATEGORY_HATE_SPEECH: HarmBlockThreshold.BLOCK_NONE, HarmCategory.HARM_CATEGORY_HARASSMENT: HarmBlockThreshold.BLOCK_NONE, HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: HarmBlockThreshold.BLOCK_NONE, HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE } ) return remove_emojis(response.text) # Gradio interface iface = gr.Interface( fn=generate_text, inputs=[ gr.Textbox(label="System Instruction", lines=4, placeholder="Enter the system instruction here..."), gr.Textbox(label="Prompt", lines=4, placeholder="Enter the prompt here...") ], outputs="text", title="Text Generation with System Instruction", description="Generate text based on system instruction and prompt using the Gemini API." ) if __name__ == "__main__": iface.launch()