python+vue3内嵌html实现拖拽excel电子表格调用openai兼容大模型api生成可视化图表数据汇总代码

代码语言:python

所属分类:其他

代码描述:python+vue3内嵌html实现拖拽excel电子表格调用openai兼容大模型api生成可视化图表数据汇总代码

代码标签: python vue 内嵌 html 拖拽 exce l电子 表格 调用 openai 兼容 大模型

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import os
import io
import json
import pandas as pd
from fastapi import FastAPI, File, Form, UploadFile, HTTPException
from fastapi.responses import HTMLResponse
from openai import OpenAI

# --- 1. 配置 ---
# 从环境变量中获取 OpenAI API 密钥
api_key ="sk-"
if not api_key:
    raise ValueError("请设置 OPENAI_API_KEY 环境变量")


# 初始化 OpenAI 和 FastAPI
client = OpenAI(api_key=api_key,base_url="https://dashscope.aliyuncs.com/compatible-mode/v1")
app = FastAPI()

# --- 2. 前端 HTML, CSS, Vue3 & ECharts 代码 ---
# 将所有前端代码内嵌在一个多行字符串中
HTML_TEMPLATE = """
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Excel 数据智能问答</title>
<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/vue.global.prod.3.5.17.js"></script>

<script type="text/javascript" src="//repo.bfw.wiki/bfwrepo/js/echarts-4.2.1.min.js"></script>
    <style>
        body {
            font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
            background-color: #f0f2f5;
            margin: 0;
            padding: 20px;
            display: flex;
            justify-content: center;
            align-items: flex-start;
            min-height: 100vh;
            color: #333;
        }
        #app {
            width: 100%;
            max-width: 800px;
            background: #fff;
            border-radius: 12px;
            box-shadow: 0 4px 12px rgba(0,0,0,0.1);
            overflow: hidden;
        }
        .header {
            padding: 20px;
            background: #007bff;
            color: white;
            text-align: center;
        }
        .header h1 {
            margin: 0;
            font-size: 24px;
        }
        .content {
            padding: 20px;
        }
        .upload-zone {
            border: 2px dashed #007bff;
            border-radius: 8px;
            padding: 40px;
            text-align: center;
            cursor: pointer;
            transition: background-color 0.3s, border-color 0.3s;
            margin-bottom: 20px;
        }
        .upload-zone.dragover {
            background-color: #e9f5ff;
            border-color: #0056b3;
        }
        .upload-zone p {
            margin: .........完整代码请登录后点击上方下载按钮下载查看

网友评论0