|
import gradio as gr |
|
import base64 |
|
import vertexai |
|
from vertexai.generative_models import GenerativeModel, Part, FinishReason |
|
import vertexai.preview.generative_models as generative_models |
|
|
|
|
|
vertexai.init(project="carbide-network-426214-b9", location="us-central1") |
|
|
|
|
|
model = GenerativeModel( |
|
"gemini-1.5-pro-001", |
|
) |
|
|
|
|
|
generation_config = { |
|
"max_output_tokens": 8192, |
|
"temperature": 1, |
|
"top_p": 0.95, |
|
} |
|
|
|
safety_settings = { |
|
generative_models.HarmCategory.HARM_CATEGORY_HATE_SPEECH: generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH, |
|
generative_models.HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH, |
|
generative_models.HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT: generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH, |
|
generative_models.HarmCategory.HARM_CATEGORY_HARASSMENT: generative_models.HarmBlockThreshold.BLOCK_ONLY_HIGH, |
|
} |
|
|
|
|
|
def generate(prompt): |
|
responses = model.generate_content( |
|
[prompt], |
|
generation_config=generation_config, |
|
safety_settings=safety_settings, |
|
stream=True, |
|
) |
|
output_text = "".join(response.text for response in responses) |
|
return output_text |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("### Интерфейс для Hugging Face с использованием Gradio и Vertex AI") |
|
prompt = gr.Textbox(label="Введите ваш запрос", placeholder="Привет! Кто ты?") |
|
output = gr.Textbox(label="Ответ модели") |
|
generate_button = gr.Button("Сгенерировать") |
|
|
|
generate_button.click(fn=generate, inputs=prompt, outputs=output) |
|
|
|
|
|
demo.launch() |
|
|