我无法直接将内容转成简书格式,但我可以给你一个大概的步骤和格式,你可以在简书上创建新文章时参考以下结构:
首先,确保你已经安装了Flask和Transformers库:
pip install flask transformers torch
app.py:
from flask import Flask, request, jsonify
from transformers import pipeline
app = Flask(__name__)
chatbot = pipeline("conversational", model="microsoft/DialoGPT-medium")
@app.route('/chat', methods=['POST'])
def chat():
user_message = request.json.get('message')
response = chatbot(user_message)
reply = response[0]['generated_text']
return jsonify({'reply': reply})
if __name__ == '__main__':
app.run(port=5000)
确保你有Node.js环境,使用Create React App创建一个新项目:
npx create-react-app chat-app
cd chat-app
npm install axios
在src
目录下,修改App.js
文件:
src/App.js:
import React, { useState } from 'react';
import axios from 'axios';
import './App.css';
const App = () => {
const [input, setInput] = useState('');
const [messages, setMessages] = useState([]);
const sendMessage = async () => {
if (!input) return;
const userMessage = { message: input };
setMessages(prev => [...prev, { text: input, sender: 'User' }]);
setInput('');
try {
const response = await axios.post('http://localhost:5000/chat', userMessage);
setMessages(prev => [...prev, { text: response.data.reply, sender: 'AI' }]);
} catch (error) {
console.error('Error:', error);
}
};
return (
<div className="App">
<div className="chat-window">
{messages.map((msg, index) => (
<div key={index} className={msg.sender}>{msg.text}</div>
))}
</div>
<input value={input} onChange={e => setInput(e.target.value)} placeholder="Type a message..." />
<button onClick={sendMessage}>Send</button>
</div>
);
};
export default App;
在src/App.css
中添加简单的样式:
.App {
text-align: center;
}
.chat-window {
border: 1px solid #ccc;
height: 400px;
overflow-y: auto;
padding: 10px;
margin: 20px;
}
.User {
text-align: right;
color: blue;
}
.AI {
text-align: left;
color: green;
}
python app.py
npm start
打开浏览器,访问 http://localhost:3000
,即可看到聊天界面,输入消息并发送,后端会使用AI生成回复。
通过这个示例,你将能够创建一个基本的聊天网站,支持与AI对话。根据需求可以继续优化和扩展功能。