streamlit-testGenius/simpleGradio.py

58 lines
2.4 KiB
Python
Raw Normal View History

2024-05-31 19:03:46 +08:00
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
2024-06-07 18:55:57 +08:00
# 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
2024-05-31 19:03:46 +08:00
messages = [{'role': 'user', 'content': prompt}]
response = Generation.call(model='qwen-plus',
messages=messages,
seed=1234,
result_format='message',
stream=False,
incremental_output=False,
2024-06-07 18:55:57 +08:00
temperature=temp,
2024-05-31 19:03:46 +08:00
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:
2024-06-07 18:55:57 +08:00
input_text = gr.Textbox(label="prompt")
question_text = gr.Textbox(label="question")
2024-05-31 19:03:46 +08:00
output_text = gr.Textbox(label="输出文本")
submit_button = gr.Button("submit")
# 使用 gr.ClearButton 来清除指定的输出组件
clear_button = gr.ClearButton(components=[output_text], value="Clear processed data")
2024-06-07 18:55:57 +08:00
temp = gr.Slider(label="Temperature", minimum=0.1, maximum=2.0, step=0.05, value=1.8)
2024-05-31 19:03:46 +08:00
# 当输入文本发生变化时,调用 response 函数并将结果显示在输出文本框中
2024-06-07 18:55:57 +08:00
submit_button.click(fn=response, inputs=[input_text, temp, question_text], outputs=output_text)
2024-05-31 19:03:46 +08:00
demo.launch()