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
}]
}