|
from flask import Flask, request, jsonify, render_template, send_from_directory |
|
from flask_cors import CORS |
|
|
|
import sys |
|
import os |
|
sys.path.append(os.path.dirname(__file__)) |
|
|
|
from llama3 import LlaMa3 |
|
|
|
app = Flask(__name__, static_folder='frontend_dist') |
|
CORS(app) |
|
|
|
|
|
llama3_model = LlaMa3() |
|
|
|
|
|
|
|
|
|
|
|
|
|
''' |
|
@app.route('/') |
|
def index(): |
|
# 返回 HTML 页面 |
|
#return render_template('index_s.html') |
|
# 提供前端的 index.html 文件 |
|
return send_from_directory(app.static_folder, 'index.html') |
|
''' |
|
|
|
@app.route('/<path:filename>') |
|
def serve_static(filename): |
|
return send_from_directory(app.static_folder, filename) |
|
|
|
|
|
|
|
@app.route('/') |
|
@app.route('/<path:subpath>') |
|
def index(subpath=None): |
|
return send_from_directory(app.static_folder, 'index.html') |
|
|
|
|
|
@app.route('/<path:path>', methods=['GET']) |
|
def catch_all(path): |
|
return send_from_directory(app.static_folder, 'index.html') |
|
|
|
|
|
|
|
@app.route('/chat', methods=['POST']) |
|
def chat(): |
|
|
|
user_message = request.json.get('message', '') |
|
|
|
if not user_message.strip(): |
|
return jsonify({"response": "请输入有效内容!"}), 400 |
|
|
|
try: |
|
|
|
messages = [{"role": "user", "content": user_message}] |
|
|
|
|
|
ai_response = llama3_model.chat(messages) |
|
|
|
|
|
return jsonify({"response": ai_response}) |
|
except Exception as e: |
|
print(f"Error during llama3 call: {e}") |
|
return jsonify({"response": "发生错误,请稍后重试!"}), 500 |
|
|
|
@app.route('/favicon.ico') |
|
def favicon(): |
|
return send_from_directory(os.path.join(app.root_path, 'static'), |
|
'favicon.ico', mimetype='image/vnd.microsoft.icon') |
|
|
|
if __name__ == '__main__': |
|
app.run(debug=True, host='127.0.0.1', port=7860) |
|
|