删除 app.py

This commit is contained in:
索梦露 2026-01-08 21:51:21 +08:00
parent 239f923074
commit e3c1bed334

196
app.py
View File

@ -1,196 +0,0 @@
import os
from flask import Flask, render_template, request, jsonify
from dotenv import load_dotenv
import dashscope
from dashscope import Generation
from datetime import datetime
import json
load_dotenv()
dashscope.api_key = os.getenv("DASHSCOPE_API_KEY")
app = Flask(__name__)
# --------------------------
# 配置
# --------------------------
SCENE_PROMPTS = {
"general": "这是通用写作场景,语言自然清晰。",
"media": "这是自媒体写作,语言有吸引力,适合传播。",
"script": "这是剧本写作,语言有画面感和情绪张力。",
"essay": "这是学生作文写作,结构清晰、表达规范。",
"academic_scene": "这是学术写作,语言严谨、逻辑清楚。"
}
POLISH_STYLES = {
"formal": "正式、书面",
"literary": "文学性强、有文采",
"spoken": "口语化、自然",
"business": "商务、专业",
"internet": "网络风格、轻松"
}
history_records = []
MAX_HISTORY = 10
# --------------------------
# AI 调用
# --------------------------
def call_ai(prompt):
resp = Generation.call(model="qwen-turbo", prompt=prompt)
if resp.status_code == 200:
return resp.output.text
return "❌ AI 调用失败"
# --------------------------
# 多版本润色
# --------------------------
def multi_version_rewrite(text, style):
prompt = f"""
请对以下文本进行润色生成 3 个不同版本
要求
1. 保持原意
2. 风格{style}
3. 输出 3 个版本分别标记 版本1/版本2/版本3
原文
{text}
"""
return call_ai(prompt)
# --------------------------
# 扩写
# --------------------------
def expand_text(text, target_length):
"""
扩写文本到指定长度字数/字符
"""
prompt = f"""
请将以下文本扩写保持原意但丰富细节和表达使字数达到 {target_length} 字左右
可以生成 3 个不同版本分别标记 版本1/版本2/版本3
原文
{text}
"""
return call_ai(prompt)
# --------------------------
# 修改原因生成
# --------------------------
def generate_revision_reason(original, revised):
prompt = f"""
请对下面两段文本进行对比说明修改的原因
仅输出文字说明不要高亮或格式化
原文
{original}
改写后
{revised}
请详细说明改动原因
"""
return call_ai(prompt)
# --------------------------
# 文学参考
# --------------------------
def generate_literary_reference(text):
prompt = f"""
请理解下面这句话的含义然后给出 3
文学作品风格中的相似表达示例
要求
1. 不是原文引用
2. 给出风格参考作者作品名
3. 仅作为文学风格参考
输出格式
1. 句子内容
风格参考作者作品名
原句
{text}
"""
return call_ai(prompt)
# --------------------------
# 历史记录
# --------------------------
def save_history(data, result):
history_records.insert(0, {
"time": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"mode": data.get("mode"),
"scene": data.get("scene"),
"input": data.get("text", "")[:100],
"output": result[:200]
})
if len(history_records) > MAX_HISTORY:
history_records.pop()
# --------------------------
# 情感分析
# --------------------------
def sentiment_analysis(text):
prompt = f"""
请分析下面文本的情感倾向仅返回严格 JSON 格式
{{"positive": %, "neutral": %, "negative": %}}
文本
{text}
"""
result = call_ai(prompt)
try:
parsed = json.loads(result.replace("", ":").replace("%",""))
return parsed
except:
return {"positive":0, "neutral":0, "negative":0}
# --------------------------
# 路由
# --------------------------
@app.route("/")
def index():
return render_template("index.html")
@app.route("/rewrite", methods=["POST"])
def rewrite():
data = request.json
text = data.get("text","")
mode = data.get("mode")
scene = data.get("scene","general")
# 根据模式生成文本
if mode=="polish":
style = data.get("style","formal")
result = multi_version_rewrite(text, style)
elif mode=="expand":
target_length = data.get("target_length", 300)
result = expand_text(text, target_length)
else:
result = f"普通生成模式:{text}" # 保留原功能
save_history(data, result)
return jsonify({"result": result})
@app.route("/literary", methods=["POST"])
def literary():
text = request.json.get("text","")
return jsonify({"reference": generate_literary_reference(text)})
@app.route("/history")
def history():
return jsonify(history_records)
@app.route("/revision_reason", methods=["POST"])
def revision_reason():
data = request.json
original = data.get("original","")
revised = data.get("revised","")
reason = generate_revision_reason(original, revised)
return jsonify({"reason": reason})
@app.route("/sentiment", methods=["POST"])
def sentiment():
text = request.json.get("text","")
return jsonify({"result": sentiment_analysis(text)})
if __name__=="__main__":
app.run(debug=True)