yDZEN-Gen / app.py
Rooni's picture
Update app.py
402c0a6 verified
import gradio as gr
import requests
import json
import os
def dzen(theme, description=""):
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("API_KEY")}'
}
payload = {
'messages': [{'role': 'system', 'content': f'Напиши пожалуйста классную, понятную, подробную, оригинальную, уникальную статью для Яндекс Дзен, без ошибок, опечаток, орфографических ошибок, на тему \"{theme}\" {description} Пиши ТОЛЬКО пост (БЕЗ пояснений, БЕЗ markdown, БЕЗ другого текста), текст в посте пиши на языке который используется в описании. Если описание пустое, то сгенерируй интересный пост на любую популярную тему тему.'}],
'max_tokens': 25000,
'model': os.getenv("MODEL")
}
response = requests.post(os.getenv("BASE_URL"), headers=headers, json=payload)
if response.status_code == 200 and response.text:
try:
data = response.json()
except json.decoder.JSONDecodeError as e:
gr.alert(f'Ошибка при декодировании JSON: {str(e)}')
return ''
if 'choices' in data and len(data['choices']) > 0:
command = data['choices'][0]['message']['content'].strip()
return command
elif 'error' in data:
error_message = data['error']['message']
gr.alert(f'Ошибка: {error_message}')
return ''
else:
gr.alert(f'Не удалось сгенерировать пост. {data}')
return ''
else:
gr.alert(f'Ошибка при получении данных от сервера. Статус код: {response.status_code}')
return ''
iface = gr.Interface(fn=dzen, inputs=[
gr.Textbox(label="Тема", placeholder=""),
gr.Textbox(label="Дополнительный текст (Не обязательно)")
], outputs=gr.Textbox(label="Пост"), title="Генератор постов Яндекс Дзен")
iface.launch()