Spaces:
Paused
Paused
import requests | |
from flask import Flask, request, jsonify | |
import logging | |
import re | |
app = Flask(__name__) | |
logging.basicConfig(level=logging.DEBUG) | |
def preprocess_prompt(prompt): | |
# 判断提示内容是否为纯英文 | |
if is_pure_english(prompt): | |
processed_prompt = prompt | |
else: | |
# 使用正则表达式匹配 @startmindmap 和 @endmindmap 之间的内容 | |
pattern = r'@startmindmap\n(.*?)\n@endmindmap' | |
# pattern = r'@startmindmap\n([*+\\-]*?)\n@endmindmap' | |
match = re.search(pattern, prompt, re.DOTALL) | |
if match: | |
mindmap_content = match.group(1) | |
# 将提示内容重复 | |
processed_prompt = f"@startmindmap\n{mindmap_content}\n{mindmap_content}\n@endmindmap" | |
else: | |
processed_prompt = prompt | |
return processed_prompt | |
def is_pure_english(text): | |
# 检查字符串中是否只包含英文字母、数字和一些特殊字符 | |
allowed_chars = set( | |
'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789@\n*\-+ ') | |
for char in text: | |
if char not in allowed_chars: | |
return False | |
return True | |
def generate_image(): | |
# 获取前端请求中的数据 | |
data = request.json | |
logging.debug(f"Received request data: {data}") | |
# 预处理 prompt | |
processed_prompt = preprocess_prompt(data['prompt']) | |
logging.debug(f"Processed prompt: {processed_prompt}") | |
# 将数据发送到 https://plantumll.azurewebsites.net/coder 接口 | |
response = requests.post( | |
'https://plantumll.azurewebsites.net/coder', data=processed_prompt) | |
logging.debug(f"Response status code: {response.status_code}") | |
logging.debug(f"Response text: {response.text}") | |
# 处理响应数据 | |
response_data = response.text | |
created = 1589478378 # 假设这是一个固定值 | |
url = f"https://plantumll.azurewebsites.net/png/{response_data}" | |
# 构造返回给前端的数据 | |
result = { | |
"created": created, | |
"data": [ | |
{ | |
"url": url | |
} | |
] | |
} | |
return jsonify(result) | |
if __name__ == '__main__': | |
app.run(host='0.0.0.0', port=7860) | |