EN

Vue.js + OpenAI API:如何在Vue应用中集成AI(2026)

Vue.js与OpenAI API完整集成指南

返回教程列表🌐 Read in English
进阶20 分钟

Vue.js + OpenAI API:如何在Vue应用中集成AI(2026)

Vue.js与OpenAI API完整集成指南

Vue.js + OpenAI API 集成指南 2026 概述 本指南将精确展示如何使用Vue.js和OpenAI API将AI集成到Vue应用中。涵盖设置、核心集成和生产级模式。 前置条件 - Vue.js环境 - OpenAI API密钥或访问凭证 - 基本的Vue.js开发知识

Vue.js + OpenAI API 集成指南 2026

概述

本指南将精确展示如何使用Vue.js和OpenAI API将AI集成到Vue应用中。涵盖设置、核心集成和生产级模式。

前置条件

  • 已搭建Vue.js环境
  • OpenAI API密钥或访问凭证
  • 基本的Vue.js开发知识
  • 安装

    bash
    

    安装所需包

    npm install openai-api vue-js-sdk

    pip install openai_api vue_js

    快速设置

    javascript
    // 初始化OpenAI API客户端
    import { OpenAIAPIClient } from 'openai-api';

    const client = new OpenAIAPIClient({ apiKey: process.env.OPENAI_API_API_KEY, // 根据你的Vue.js设置添加其他配置 });

    核心集成代码

    typescript
    // 完整的Vue.js + OpenAI API集成
    import { OpenAI } from 'openai';
    import express from 'express';

    // AI端点 app.post('/api/ai', async (req, res) => { const { message, context } = req.body; try { const response = await openai.chat.completions.create({ model: 'gpt-4o-mini', messages: [ { role: 'system', content: 你已与Vue.js集成。帮助将AI集成到Vue应用中。 }, { role: 'user', content: message } ], stream: false }); res.json({ response: response.choices[0].message.content, usage: response.usage }); } catch (error) { res.status(500).json({ error: error.message }); } });

    app.listen(3000);

    Vue.js特定集成

    javascript
    // Vue.js与OpenAI API集成的特定模式

    // 模式2:服务层 class AIService { constructor(private readonly client: typeof openai) {} async process(input: string, systemPrompt: string = ''): Promise { const response = await this.client.chat.completions.create({ model: 'gpt-4o-mini', messages: [ ...(systemPrompt ? [{ role: 'system' as const, content: systemPrompt }] : []), { role: 'user' as const, content: input } ] }); return response.choices[0].message.content || ''; } }

    // 模式3:React钩子(如适用) function useAI() { const [response, setResponse] = useState(''); const [loading, setLoading] = useState(false); const query = async (message: string) => { setLoading(true); try { const res = await fetch('/api/ai', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ message }) }); const data = await res.json(); setResponse(data.response); } finally { setLoading(false); } }; return { response, loading, query }; }

    流式支持

    typescript
    // 添加流式支持以改善用户体验
    app.post('/api/ai/stream', async (req, res) => {
      const { message } = req.body;
      
      res.setHeader('Content-Type', 'text/event-stream');
      res.setHeader('Cache-Control', 'no-cache');
      res.setHeader('Connection', 'keep-alive');
      
      const stream = await openai.chat.completions.create({
        model: 'gpt-4o-mini',
        messages: [{ role: 'user', content: message }],
        stream: true
      });
      
      for await (const chunk of stream) {
        const content = chunk.choices[0]?.delta?.content;
        if (content) {
          res.write(data: ${JSON.stringify({ content })}\n\n);
        }
      }
      
      res.write('data: [DONE]\n\n');
      res.end();
    });
    

    测试集成

    bash
    

    单元测试

    curl -X POST http://localhost:3000/api/ai \ -H "Content-Type: application/json" \ -d '{"message": "测试消息:将AI集成到Vue应用中"}'

    预期输出:

    {"response": "AI响应...", "usage": {...}}

    负载测试

    ab -n 100 -c 10 -p test-payload.json -T application/json http://localhost:3000/api/ai

    生产部署

    yaml
    

    docker-compose.yml

    services: app: build: . environment: - OPENAI_API_KEY=${OPENAI_API_KEY} - NODE_ENV=production ports: - "3000:3000" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/health"] interval: 30s

    常见问题

    问题:速率限制错误 解决方案:实现指数退避和请求排队

    问题:响应时间慢 解决方案:使用流式传输并向用户显示加载状态

    结论

    Vue.js + OpenAI API的集成功能强大且相对直接。本指南为您提供了将AI集成到生产环境Vue应用中的基础。


    *Vue.js + OpenAI API集成指南 | 2026年5月*

    相关工具

    Vue.jsOpenAI API