Spaces:
Runtime error
Runtime error
| import os | |
| import json | |
| import vertexai | |
| from vertexai.generative_models import GenerativeModel | |
| import vertexai.preview.generative_models as generative_models | |
| import gradio as gr | |
| # Read the service account key JSON file path from environment variable | |
| SERVICE_ACCOUNT_KEY_PATH = os.getenv("GOOGLE_APPLICATION_CREDENTIALS") | |
| if not SERVICE_ACCOUNT_KEY_PATH: | |
| raise ValueError("The GOOGLE_APPLICATION_CREDENTIALS environment variable is not set.") | |
| with open(SERVICE_ACCOUNT_KEY_PATH) as f: | |
| service_account_info = json.load(f) | |
| os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = SERVICE_ACCOUNT_KEY_PATH | |
| def generate(text): | |
| try: | |
| vertexai.init(project="idyllic-now-424815-h2", location="us-central1") | |
| model = GenerativeModel( | |
| "gemini-1.5-flash-001", | |
| system_instruction=[ | |
| 'Objective', text, 'Instructions', 'Use words like "thou," "thee," "thy," "henceforth," "forsooth," and "verily."', | |
| 'Transform sentences to be elaborate and formal.', | |
| 'Maintain a delusional nobleman tone, addressing others as if they are of lower status.', | |
| 'Examples', ':', 'Input', ': "Hey, what\'s up?"', 'Output', ': "Greetings, fair compatriot! What news dost thou bring?"', | |
| 'Input', ': "Can you help me with this?"', 'Output', ': "Might I entreat thee to lend thine esteemed assistance in this matter?"', | |
| 'Input', ': "I don\'t like this."', 'Output', ': "I find this matter to be most displeasing and beneath my esteemed tastes."', | |
| 'Input', ': "You did a good job."', 'Output', ': "Thy efforts are commendable, and thou hast performed admirably."', | |
| 'Input', ': "See you later."', 'Output', ': "Until we meet again, may fortune smile upon thee."', | |
| 'Keep the original meaning, but make it sound like a nobleman from a fantasy world.' | |
| ] | |
| ) | |
| generation_config = { | |
| 'max_output_tokens': 3019, | |
| 'temperature': 1, | |
| 'top_p': 0.32, | |
| } | |
| safety_settings = { | |
| generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH: generative_models.HarmBlockThreshold.BLOCK_NONE, | |
| generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: generative_models.HarmBlockThreshold.BLOCK_NONE, | |
| generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: generative_models.HarmBlockThreshold.BLOCK_NONE, | |
| generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT: generative_models.HarmBlockThreshold.BLOCK_NONE, | |
| } | |
| responses = model.generate_content( | |
| [text], | |
| generation_config=generation_config, | |
| safety_settings=safety_settings, | |
| stream=True, | |
| ) | |
| response_text = "" | |
| for response in responses: | |
| response_text += response.text | |
| return response_text if response_text else "No valid response generated or response was blocked." | |
| except Exception as e: | |
| return str(e) | |
| # # Custom HTML and JavaScript for "Copy to Clipboard" functionality | |
| # js = """ | |
| # function copyToClipboard() { | |
| # var copyText = document.getElementById("output-textbox"); | |
| # copyText.select(); | |
| # document.execCommand("copy"); | |
| # } | |
| # """ | |
| iface = gr.Interface( | |
| fn=generate, | |
| inputs=gr.Textbox(lines=2, placeholder="Enter text here..."), | |
| outputs="text", | |
| title="Chuunibyou Text Generator", | |
| description="Transform text into an elaborate and formal style with a nobleman tone.", | |
| live=False | |
| ) | |
| def launch_custom_interface(): | |
| iface.launch() | |
| with gr.TabbedInterface(fn=generate, inputs=gr.Textbox(lines=2, placeholder="Enter text here..."), outputs=gr.HTML(label="Output")) as ti: | |
| ti.add(custom_html) | |
| if __name__ == "__main__": | |
| launch_custom_interface() | |