|
|
|
import gradio as gr |
|
from langchain_openai import ChatOpenAI |
|
from langchain_core.prompts import ChatPromptTemplate |
|
|
|
def generate_response(prompt, temperature, api_key): |
|
try: |
|
llm = ChatOpenAI( |
|
model="gpt-4o-mini", |
|
temperature=float(temperature), |
|
openai_api_key=api_key |
|
) |
|
|
|
template = ChatPromptTemplate.from_messages([ |
|
("system", "You are a creative assistant."), |
|
("user", "{prompt}") |
|
]) |
|
|
|
chain = template | llm |
|
return chain.invoke({"prompt": prompt}).content |
|
|
|
except Exception as e: |
|
return f"Error: {str(e)}" |
|
|
|
demo = gr.Interface( |
|
fn=generate_response, |
|
inputs=[ |
|
gr.Textbox( |
|
label="Enter your prompt", |
|
placeholder="Write something creative..." |
|
), |
|
gr.Slider( |
|
minimum=0, |
|
maximum=1, |
|
value=0.7, |
|
step=0.1, |
|
label="Temperature (0: Focused, 1: Creative)" |
|
), |
|
gr.Textbox( |
|
label="OpenAI API Key", |
|
type="password" |
|
) |
|
], |
|
outputs=gr.Textbox(label="Generated Response", lines=5), |
|
title="Creative Text Generator", |
|
description="Adjust temperature to control response creativity: 0 for focused responses, 0.7 for balanced creativity, 1 for maximum creativity." |
|
) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|