Spaces:
Sleeping
Sleeping
File size: 3,696 Bytes
11a668a f92a51b 6eccccd ec1e4af 11a668a c6622a4 4e195d5 04d2f1c 05c35aa d8abe74 6eccccd 23a6746 d8abe74 c8178ad 6eccccd 9453cb9 c6622a4 04d2f1c d8abe74 c8178ad 74428c3 04d2f1c 74428c3 2ed3994 04d2f1c 74428c3 04d2f1c 11a668a 18a33d6 06df5af 2d0f870 18a33d6 06df5af 11a668a 74428c3 06df5af bc94cc7 74428c3 c29f697 90b0f48 dece9dd 74428c3 404a58d c29f697 74428c3 04d2f1c 11a668a 74428c3 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# imports
import gradio as gr
import requests
import json
import os
# functions
def generate(description):
if not description:
yield None
return
headers = {
'Content-Type': 'application/json',
'Authorization': f'Bearer {os.getenv("API_KEY")}'
}
payload = {
'messages': [{'role': 'system', 'content': f'Ты - корректор текста. Пользователь будет отправлять тебе сообщения, а ты должен исправлять в них все ГРАММАТИЧЕСКИЕ ошибки (в том числе и знаки припенания). Отвечать ты должен без лишних символов, только исправленный запрос пользователя, без markdown. Не надо писать вроде этого: "Вот ваш исправленный тексст: ...", пиши сразу "...". И не нужно выделять то, что ты исправил, просто напиши всё правильно, без грамматических ошибок. Начинаем, ниже сообщение пользователя'}, {'role': 'user', 'content': description}],
'max_tokens': 150000,
'model': "gemini-1.5-pro-latest",
'stream': True # Добавляем stream=True
}
try:
response = requests.post(f'{os.getenv("BASE_URL")}v1/chat/completions', headers=headers, json=payload, stream=True, timeout=200)
response.raise_for_status() # Проверяем на ошибки HTTP
full_text = ""
for chunk in response.iter_lines():
if chunk:
try:
chunk = chunk.decode('utf-8').replace("data: ", "")
if chunk == "[DONE]":
break
chunk_data = json.loads(chunk)
if 'choices' in chunk_data and len(chunk_data['choices']) > 0:
text_chunk = chunk_data['choices'][0]['delta'].get('content', "")
full_text += text_chunk
yield full_text # Выводим текст как итератор
except json.JSONDecodeError:
continue
if not full_text:
yield "Не удалось получить ответ от сервера."
except requests.exceptions.RequestException as e:
print(f"Ошибка запроса: {e}")
yield f"**Ошибка запроса!**\n\n```\n{e}\n```"
except Exception as e:
print(f"Ошибка: {str(e)}")
yield "Произошла ошибка при генерации"
# Ссылка на файл CSS
css_url = "https://neurixyufi-aihub.static.hf.space/style.css"
# Получение CSS по ссылке
response = requests.get(css_url)
css = response.text + " .gradio-container{max-width: 700px !important} h1{text-align:center}"
# ui
with gr.Blocks(css=css) as demo:
gr.Markdown("# Исправление опечаток")
with gr.Tab("Исправление опечаток"):
with gr.Row():
promt = gr.Textbox(show_label=True, label="Запрос", lines=3, placeholder="Привет как делпа ?")
with gr.Row():
text_button = gr.Button("Генерация", variant='primary')
with gr.Row():
with gr.Tab("Ответ"):
text_output = gr.Textbox(show_label=False, placeholder="Привет, как дела?")
text_button.click(generate, inputs=[promt], outputs=[text_output], concurrency_limit=250)
demo.queue(api_open=False).launch() |