将生成式 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 (
Generative AI Chat
{response && (
Response:
{response}
)}
);
};
export default AIChat;3. 测试集成
node server.js
npm start