|
import gradio as gr |
|
import numpy as np |
|
import os |
|
from sentence_transformers import SentenceTransformer |
|
|
|
|
|
model = SentenceTransformer('all-MiniLM-L6-v2') |
|
|
|
def predict(vector): |
|
"""处理向量输入并返回答案""" |
|
try: |
|
|
|
vector = np.array(vector).reshape(1, -1) |
|
|
|
|
|
|
|
if vector.shape[1] == 384: |
|
return "这是基于向量生成的回答示例。实际使用时应连接您的 RAG 模型" |
|
else: |
|
return f"错误:接收的向量维度是 {vector.shape[1]},但预期是 384" |
|
|
|
except Exception as e: |
|
return f"处理错误: {str(e)}" |
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## 🛍️ 电商智能客服系统") |
|
with gr.Row(): |
|
vector_input = gr.Dataframe( |
|
headers=["向量值"], |
|
type="array", |
|
label="输入向量 (384维)" |
|
) |
|
output = gr.Textbox(label="智能回答") |
|
|
|
submit_btn = gr.Button("生成回答") |
|
submit_btn.click( |
|
fn=predict, |
|
inputs=vector_input, |
|
outputs=output |
|
) |
|
|
|
|
|
demo.launch( |
|
server_name="0.0.0.0", |
|
server_port=7860, |
|
share=False |
|
) |