Spaces:
Runtime error
Runtime error
import streamlit as st | |
import openai | |
import os | |
from openai import OpenAI | |
client = OpenAI(api_key=os.getenv('OPENAI_API_KEY')) | |
st.title('Marketing Content Translation!') | |
# Text input for translation | |
marketing_text = st.text_area('Enter the text to be translated', 'Hello, World!') | |
# Dropdown for selecting target language | |
target_language = st.selectbox('Select the target language', ['Spanish', 'French', 'Hindi', 'Other']) | |
if target_language == 'Other': | |
other_language = st.text_input('Enter the target language', 'Japanese') | |
target_language = other_language | |
# Button to trigger translation | |
translate_submit = st.button('Translate') | |
def stream_translation(text, target_language): | |
""" Generator that streams the translation response. """ | |
prompt = f'Translate the following text to {target_language}: \n{text}' | |
response = client.chat.completions.create( | |
model="gpt-4-turbo", | |
messages=[ | |
{"role": "user", "content": prompt} | |
], | |
temperature=1, | |
max_tokens=2000, | |
top_p=1, | |
frequency_penalty=0, | |
presence_penalty=0, | |
stream=True # Enable streaming | |
) | |
for chunk in response: | |
if chunk.choices[0].delta and chunk.choices[0].delta.content: | |
yield chunk.choices[0].delta.content | |
if translate_submit: | |
# Using st.write_stream to display the streamed response | |
st.write_stream(stream_translation(marketing_text, target_language)) | |