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: # 转换为 numpy 数组 vector = np.array(vector).reshape(1, -1) # 实际项目中这里应该是您的 RAG 推理逻辑 # 这里用示例替代 if vector.shape[1] == 384: # MiniLM 向量维度 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 # 在 Space 中设置为 False )