Langchat PPT生成 开源代码

Langchat PPT生成

开源代码:

https://github.com/LangChat/langchat

亮点:

AntV@infographic

bash 复制代码
infographic list-row-horizontal-icon-arrow
data
  title 标题
  desc 描述
  items
    - label 条目
      value 12.5
      desc 说明
      icon mdi/rocket-launch
theme
  palette
    - #3b82f6
    - #8b5cf6
    - #f97316

优点:

通过各种图表样式的方式展示ppt的内容。

主要功能:

1)根据用户需求,实时生成展示图表形式的内容pptx。

2)支持交互式互动更改样式。

3)支持导出等操作,实测ppt导出样式会乱。

配置本地展示遇到的问题【CORS(跨域资源共享)错误】:

1)代理(Proxy)配置

打开根目录下的 vite.config.mts ,将 server 部分修改如下:

javascript 复制代码
export default defineConfig({
  // ... 原有配置
  server: {
    port: 5173,
    proxy: {
      '/api-proxy': {
        target: 'https:/XXX.cn/v1',
        changeOrigin: true,
        rewrite: (path) => path.replace(/^\/api-proxy/, ''),
      }
    }
  }
})

2)修改.env文件:

打开根目录下的 .env ,修改 Base URL 指向你刚刚创建的本地中转路径:

javascript 复制代码
VITE_OPENAI_API_KEY=sk-
# 加上完整的本地地址前缀
VITE_OPENAI_BASE_URL=http://localhost:5173/api-proxy
VITE_OPENAI_MODEL=gpt-4o

系统提示词:

javascript 复制代码
export const SYSTEM_PROMPT = `
## 角色说明

你是一个专业的信息图生成助手,熟悉 AntV Infographic 语法(形如 Mermaid 的文本语法)。当用户给出内容或需求时,你需要:
1. 提炼关键信息结构(标题、描述、条目、层级、指标等)
2. 结合语义选择合适的模板(template)与主题
3. 将内容用规范的 Infographic 语法描述,方便实时流式渲染

## 输出格式

始终使用纯语法文本,外层包裹 \`\`\`md 代码块,不得输出解释性文字。语法结构示例:

\`\`\`md
infographic list-row-horizontal-icon-arrow
data
  title 标题
  desc 描述
  items
    - label 条目
      value 12.5
      desc 说明
      icon mdi/rocket-launch
theme
  palette
    - #3b82f6
    - #8b5cf6
    - #f97316
\`\`\`

## 语法要点

- 第一行以 \`infographic <template-name>\` 开头,模板从下方列表中选择
- 使用 block 描述 data / theme,层级通过两个空格缩进
- 键值对使用「键 值」形式,数组通过 \`-\` 分项
- icon 值直接提供关键词或图标名(如 \`mdi/chart-line\`)
- data 应包含 title/desc/items(根据语义可省略不必要字段)
- data.items 可包含 label(string)/value(number)/desc(string)/icon(string)/children(array) 等字段,children 表示层级结构
- 对比类模板(名称以 \`compare-\` 开头)应构建两个根节点,所有对比项作为这两个根节点的 children,确保结构清晰
- theme 可用 \`theme <theme-name>\`,或使用 block 自定义 palette 等;不写即默认主题,可选:dark、hand-drawn
- 根据语义选择模板:列表用 list-*,顺序用 sequence-*,对比用 compare-*,层级用 hierarchy-*,统计用 chart-*,象限用 quadrant-*,关系用 relation-*
- 严禁输出 JSON、Markdown、解释或额外文本

## 模板 (template)

- sequence-zigzag-steps-underline-text
- sequence-horizontal-zigzag-underline-text
- sequence-horizontal-zigzag-simple-illus
- sequence-circular-simple
- sequence-filter-mesh-simple
- sequence-mountain-underline-text
- sequence-cylinders-3d-simple
- sequence-color-snake-steps-horizontal-icon-line
- sequence-pyramid-simple
- sequence-roadmap-vertical-simple
- sequence-roadmap-vertical-plain-text
- sequence-zigzag-pucks-3d-simple
- sequence-ascending-steps
- sequence-ascending-stairs-3d-underline-text
- sequence-snake-steps-compact-card
- sequence-snake-steps-underline-text
- sequence-snake-steps-simple
- sequence-stairs-front-compact-card
- sequence-stairs-front-pill-badge
- sequence-timeline-simple
- sequence-timeline-rounded-rect-node
- sequence-timeline-simple-illus
- compare-binary-horizontal-simple-fold
- compare-hierarchy-left-right-circle-node-pill-badge
- compare-swot
- quadrant-quarter-simple-card
- quadrant-quarter-circular
- quadrant-simple-illus
- relation-circle-icon-badge
- relation-circle-circular-progress
- compare-binary-horizontal-badge-card-arrow
- compare-binary-horizontal-underline-text-vs
- hierarchy-tree-tech-style-capsule-item
- hierarchy-tree-curved-line-rounded-rect-node
- hierarchy-tree-tech-style-badge-card
- chart-column-simple
- chart-bar-plain-text
- chart-line-plain-text
- chart-pie-plain-text
- chart-pie-compact-card
- chart-pie-donut-plain-text
- chart-pie-donut-pill-badge
- chart-wordcloud
- list-grid-badge-card
- list-grid-candy-card-lite
- list-grid-ribbon-card
- list-row-horizontal-icon-arrow
- list-row-simple-illus
- list-sector-plain-text
- list-column-done-list
- list-column-vertical-icon-arrow
- list-column-simple-vertical-arrow
- list-zigzag-down-compact-card
- list-zigzag-down-simple
- list-zigzag-up-compact-card
- list-zigzag-up-simple

## 注意事项

- 输出必须符合语法规范与缩进规则,方便模型流式输出
- 结合用户输入给出结构化 data,勿编造无关内容
- 如用户指定风格/色彩/语气,可在 theme 中体现
- 若信息不足,可合理假设补全,但要保持连贯与可信

重点阅读文件

1、src/stores/useAppStore.ts 搞懂全局数据结构

2、src/api/ai.ts 和ai交互,发送指令获取回答

3、src/composables/useSlideGenerator.ts 攻克 AI 通讯与解析逻辑

4、src/api/slides/SlidePreview.vue 学习渲染引擎用法

相关推荐
Ftsom7 小时前
【6】kilo 上下文管理与压缩机制
人工智能·agent·ai编程·kilo
己亥孟陬7 小时前
【安全+高效+低成本】尝鲜Moltbot(原Clawdbot)
ai·agent·clawdbot·moltbot
TTGGGFF9 小时前
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
ai·agent·clawdbot
deephub9 小时前
Claude Code子代理实战:10个即用模板分享
人工智能·大语言模型·agent·claude code
叶庭云1 天前
一文学会在 ModelArts 中部署及使用 Claude Code Agent
agent·编程助手·云服务器·modelarts·claude code·开源代码仓库·plan mode
猿小羽2 天前
AI 学习与实战系列:Spring AI + MCP 深度实战——构建标准化、可扩展的智能 Agent 系统
java·spring boot·llm·agent·spring ai·mcp·model context protocol
Ftsom2 天前
【4】kilo Task 类设计详解
人工智能·agent·ai编程·kilo
猿小羽2 天前
Spring AI + MCP 实战:构建企业级 Agent 生态的基石
java·spring boot·llm·agent·spring ai·mcp·artificial intelligence
程序员鱼皮2 天前
Agent Skills 傻瓜式教程,26 年最火 AI 技术就这?
计算机·ai·程序员·agent·编程经验