streamlit-testGenius/simpleGradio.py
VincentXiuyuanZhao ba969a699e format code
2024-06-07 18:55:57 +08:00

58 lines
2.4 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import gradio as gr
import pandas as pd
import tempfile
import csv
from http import HTTPStatus
import dashscope
from dashscope import Generation
import os
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY") # Vincent's API key
# todo: add question variable
def response(prompt, temp, question=None):
# if instruction is not None: # 如果提供了指令则添加到messages中
# messages.insert(0, {'role': 'system', 'content': instruction})
if question is not None: # 如果提供了问题则添加到messages中
# if no {question}, raise error
if '{question}' not in prompt:
raise ValueError('Please provide a question variable')
prompt = prompt.replace('{question}', question)
else:
pass
messages = [{'role': 'user', 'content': prompt}]
response = Generation.call(model='qwen-plus',
messages=messages,
seed=1234,
result_format='message',
stream=False,
incremental_output=False,
temperature=temp,
top_p=0.9,
top_k=999
)
if response.status_code == HTTPStatus.OK:
message = response.output.choices[0]['message']['content']
return message
else:
print('Request id: %s, Status code: %s, error code: %s, error message: %s' % (
response.request_id, response.status_code,
response.code, response.message
))
return f"Error: Could not generate response with Status code: {response.status_code}, error code: {response.code}"
with gr.Blocks() as demo:
input_text = gr.Textbox(label="prompt")
question_text = gr.Textbox(label="question")
output_text = gr.Textbox(label="输出文本")
submit_button = gr.Button("submit")
# 使用 gr.ClearButton 来清除指定的输出组件
clear_button = gr.ClearButton(components=[output_text], value="Clear processed data")
temp = gr.Slider(label="Temperature", minimum=0.1, maximum=2.0, step=0.05, value=1.8)
# 当输入文本发生变化时,调用 response 函数并将结果显示在输出文本框中
submit_button.click(fn=response, inputs=[input_text, temp, question_text], outputs=output_text)
demo.launch()