生成式人工智能(Gen AI)已成为现代应用程序开发创新的基石。通过利用 GPT(生成式预训练变压器)等模型,开发人员可以构建能够生成类人文本、创建图像、总结内容等的应用程序。将生成式 AI 与 MERN(MongoDB、Express、React、Node.js)堆栈应用程序集成可以通过添加智能自动化、对话界面或创意内容生成功能来增强用户体验。本博客将指导您完成 Gen AI 与 MERN 应用程序集成的过程,重点关注实际实施。
在将生成式 AI 集成到您的 MERN 应用程序之前,请确保您拥有:
后端 (Node.js Express) 将充当 MERN 应用程序和生成式 AI API 之间的桥梁。
npm install express dotenv axios cors
使用 .env 文件安全地存储您的 API 密钥:
npm install express dotenv axios cors
创建一个名为 server.js 或类似的文件并设置 Express 服务器:
OPENAI_API_KEY=your_openai_api_key_here
使用 axios 或 fetch 从 React 前端调用后端 API。如果尚未安装 axios,请安装:
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}`); });
创建一个React组件与后端交互:
npm install axios
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 ( <div> <h1>Generative AI Chat</h1> <form onSubmit={handleSubmit}> <textarea value={prompt} onChange={(e) => setPrompt(e.target.value)} placeholder="Enter your prompt here" rows="5" cols="50" /> <br /> <button type="submit" disabled={loading}> {loading ? 'Generating...' : 'Generate'} </button> </form> {response && ( <div> <h3>Response:</h3> <p>{response}</p> </div> )} </div> ); }; export default AIChat;
node server.js
以上是将生成式 AI 与 MERN 应用程序集成的详细内容。更多信息请关注PHP中文网其他相关文章!