将生成式 AI 与 MERN 应用程序集成
介绍
生成式人工智能 (Gen AI) 已成为现代应用程序开发创新的基石。通过利用 GPT(生成式预训练 Transformer)等模型,开发人员可以构建能够生成类似人类的文本、创建图像、总结内容等的应用程序。将生成式人工智能与 MERN(MongoDB、Express、React、Node.js)堆栈应用程序集成可以通过添加智能自动化、对话界面或创意内容生成功能来增强用户体验。本博客将指导您完成将 Gen AI 与 MERN 应用程序集成的过程,重点介绍实际实施。
MERN 应用中生成式 AI 的用例
先决条件
在将生成式 AI 集成到您的 MERN 应用程序之前,请确保您已:
逐步集成指南
1.设置后端
后端(Node.js + Express)将充当您的 MERN 应用程序和生成式 AI API 之间的桥梁。
安装所需的软件包
npm install express dotenv axios cors
创建环境文件
使用 `.env` 文件安全地存储您的 API 密钥:
OPENAI_API_KEY=your_openai_api_key_here
编写后端代码
创建一个名为“server.js”或类似的文件并设置 Express 服务器:
const express = require('express'); const axios = require('axios'); const cors = require('cors'); require('dotenv').config(); const app = express(); app.use(express.json()); app.use(cors()); const PORT = 5000; app.post('/api/generate', async (req, res) => { const { prompt } = req.body; try { const response = await axios.post( 'https://api.openai.com/v1/completions', { model: 'text-davinci-003', // Adjust model based on your use case prompt, max_tokens: 100, }, { headers: { 'Content-Type': 'application/json', Authorization: `Bearer ${process.env.OPENAI_API_KEY}`, }, } ); res.status(200).json({ result: response.data.choices[0].text }); } catch (error) { console.error(error); res.status(500).json({ error: 'Failed to generate response' }); } }); app.listen(PORT, () => { console.log(`Server is running on http://localhost:${PORT}`); });
2. 连接前端
在 React 中设置 API 调用
使用 `axios` 或 `fetch` 从 React 前端调用后端 API。如果尚未安装 `axios`,请安装:
npm install axios
编写前端代码
创建一个 React 组件来与后端交互:
import React, { useState } from 'react'; import axios from 'axios'; const AIChat = () => { const [prompt, setPrompt] = useState(''); const [response, setResponse] = useState(''); const [loading, setLoading] = useState(false); const handleSubmit = async (e) => { e.preventDefault(); setLoading(true); try { const result = await axios.post('http://localhost:5000/api/generate', { prompt }); setResponse(result.data.result); } catch (error) { console.error('Error fetching response:', error); setResponse('Error generating response.'); } finally { setLoading(false); } }; return (); }; export default AIChat;Generative AI Chat
{response && ()}Response:
{response}
3. 测试集成
node server.js
npm start