【人工智能-前端OpenWebUI】--图表显示

发布于:2025-03-21 ⋅ 阅读:(15) ⋅ 点赞:(0)

OpenWebUI显示表格

本文介绍markdown格式的表格显示:
以下是一个实例,从csv文件读取数据,然后用markdown格式表格返回给OpenWebUI,OpenWebUI会自动渲染成表格。

def query_flights(departure_airport, destination_airport):
    """
   
      try:
        # 1. 构建文件名
        filename = "test.csv"
        filepath = os.path.join("test", filename)  # 假设文件存放在data目录下

        # 2. 检查文件是否存在
        if not os.path.exists(filepath):
            return f"错误:未找到 {filename} 航班数据文件"

        # 3. 读取CSV文件
        df = pd.read_csv(filepath)
        
        # 4. 检查必要列是否存在
        required_columns = ['航司', '航班号', '始发时间', '到达时间']
        if not set(required_columns).issubset(df.columns):
            missing = set(required_columns) - set(df.columns)
            return f"数据文件格式错误,缺少列:{', '.join(missing)}"

        # 5. 筛选目标航司,此处可以做一些删选
        filtered_df = df

        # 6. 检查是否有数据
        if filtered_df.empty:
            return f"在 {filename} 中未找到目标航司的航班信息"

        # 7. 格式化输出
        result = filtered_df[required_columns].sort_values('始发时间')
        result_with_row_num = result.copy()
        result_with_row_num.insert(0, '行序号', range(1, len(result) + 1))
        return result_with_row_num
        # 8. markdown数据
        markdown_table = result_with_row_num.to_markdown(
            index=False,
            tablefmt="pipe",
            stralign="center"
        )
        
        return markdown_table
    except pd.errors.EmptyDataError:
        return f"错误:文件 {filename} 内容为空"
    
把这个返回结果放到返回给OpenWebUI的响应:
OpenWebUI支持OPENAI标准的格式返回,所以结果放到下面input_result里面就可以了

```python
{
            "id": "chatcmpl-abc123",
            "object": "chat.completion",
            "created": 1,
            "model":  modelname,
            "usage": {
                "prompt_tokens": xx,
                "completion_tokens": x,
                "total_tokens": x
            },
            "choices": [{
                "message": {
                    "role": "assistant",
                    "content": input_result
                },
                "finish_reason": "stop",
                "index": 0
            }]
       }

效果如下:

在这里插入图片描述