ai_v/config.py
24024 3d479c52e7 ```
feat(api): 新增AI生成内容检测功能

- 添加aigc-detect路由接口,用于检测图像是否为AI生成内容
- 集成阿里云AIGC检测服务,配置相关API参数
- 实现积分扣除机制,每次检测消耗1积分

feat(frontend): 前端集成AI生成检测UI组件

- 添加formatAigcDetectionResult函数用于格式化检测结果显示
- 实现detectAigcImage函数处理检测请求和响应
- 在图片展示区域添加AI生成检测按钮和结果展示框
- 更新图片容器布局,优化下载按钮显示效果

refactor(service): 优化积分管理逻辑

- 新增try_deduct_points函数实现积分预检查和扣除
- 改进错误处理机制,确保数据库事务安全

refactor(history): 过滤AI检测记录

- 在历史记录查询中排除AI生成检测类型的数据
- 使用image_urls字段过滤检测相关的记录
```
2026-05-16 23:11:08 +08:00

97 lines
6.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import os
class Config:
# 基础配置
SECRET_KEY = os.getenv("SECRET_KEY", "vision-ai-secret-key")
# PostgreSQL 配置
SQLALCHEMY_DATABASE_URI = "postgresql://user_xREpkJ:password_DZz8DQ@331002.xyz:2022/ai_vision"
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_ENGINE_OPTIONS = {
"pool_pre_ping": True,
"pool_recycle": 1800,
"pool_timeout": 30,
"connect_args": {
"connect_timeout": 5
}
}
# Redis 配置
REDIS_URL = "redis://:redis_WWjNyb@331002.xyz:2020/0"
# Session 配置
PERMANENT_SESSION_LIFETIME = 604800 # 7 天 (单位:秒)
SESSION_COOKIE_SECURE = False # 开发环境或非 HTTPS 生产环境设为 False
SESSION_COOKIE_HTTPONLY = True # 防止 XSS 获取 Cookie
# MinIO 配置
MINIO = {
"endpoint": "http://331002.xyz:9000",
"access_key": "l0VlsxrkASbXN2YSQrJk",
"secret_key": "ZK8nXHieorl3fpbssUMGGfr8zZmbpXB5gAbma3z1",
"bucket": "images",
"public_url": "/files/"
}
# AI API 配置
AI_API = "https://ai.t8star.cn/v1/images/generations"
AI_BASE_URL = "https://api.bltcy.ai"
AI_BACKUP_BASE_URL = "https://ai.comfly.chat"
CHAT_API = f"{AI_BASE_URL}/v1/chat/completions"
VIDEO_GEN_API = f"{AI_BASE_URL}/v2/videos/generations"
VIDEO_POLL_API = f"{AI_BASE_URL}/v2/videos/generations/{{task_id}}"
GPT_IMAGE_GENERATION_API = f"{AI_BASE_URL}/v1/images/generations"
GPT_IMAGE_EDIT_API = "https://nas.4x4g.com:8317/v1/images/edits"
GPT_IMAGE_EDIT_KEY = "sk-vDmmYNzoe7UjWskKx"
# 试用模式配置
TRIAL_API = f"{AI_BASE_URL}/v1/images/generations"
TRIAL_KEY = "sk-pxowRoSbyavisIbaVLdedS7g5UePzhIxsTfjlJFOuqTRYQzT"
TRIAL_BACKUP_KEY = "sk-Rr8L5noW8Qga7K4jmey3yYZYL1a4SlhlNlo5iZrwqJRK1Pa1"
PREMIUM_KEY = "sk-iMfeWAESLFIrHvxuBe2VbM4rC7ScZNvcaouqhVAd0J4KomYv"
PREMIUM_BACKUP_KEY = "sk-168trRxnemem6nTpQn1rbmJ4SFKLwTMsZ0G6uk5OipP7FKAY"
VIDEO_KEY = "sk-pxowRoSbyavisIbaVLdedS7g5UePzhIxsTfjlJFOuqTRYQzT"
VIDEO_BACKUP_KEY = "sk-Rr8L5noW8Qga7K4jmey3yYZYL1a4SlhlNlo5iZrwqJRK1Pa1"
GEMINI_FLASH_IMAGE_PREMIUM_KEY = "sk-0vTMf4vJ0RMvLK4J5wtkRDu7pNEDD69piFcDyf31NCdEYTC1"
GEMINI_FLASH_IMAGE_PREMIUM_BACKUP_KEY = "sk-OEbEnJORrKx4YEnLPEbwQL3eS5sp0eeSbtUepUrsIqjaLc1X"
DICT_URL = "https://nas.4x4g.com:10011/api/common/sys/dict"
PLATFORM = "lingmao"
# 阿里云短信配置
ALIBABA_CLOUD_ACCESS_KEY_ID = "LTAI5tAbHKxmPKVPYsABEdyq"
ALIBABA_CLOUD_ACCESS_KEY_SECRET = "v6URREddBqvGfwZrWH1DWoxs3w6RxZ"
AIGC_DETECTOR_SERVICE = os.getenv("AIGC_DETECTOR_SERVICE", "aigcDetector_ultra")
AIGC_DETECTOR_ENDPOINT = os.getenv("AIGC_DETECTOR_ENDPOINT", "green-cip.cn-beijing.aliyuncs.com")
AIGC_DETECTOR_REGION_ID = os.getenv("AIGC_DETECTOR_REGION_ID", "cn-beijing")
AIGC_DETECTOR_COST = int(os.getenv("AIGC_DETECTOR_COST", "1"))
SMS_SIGN_NAME = "速通互联验证码"
SMS_TEMPLATE_CODE = "100001"
SMS_NEED_PARAM = False # 该模板需要参数,如使用系统赠送模板请改为 False
# 支付宝配置 (待填)
ALIPAY_APP_ID = "2021006125623511" # 支付宝 AppID
ALIPAY_APP_PRIVATE_KEY = """-----BEGIN RSA PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC+BMpGTJMzDoOnjyGh69rDLbV/8rlBRDAWdhyT3s0+iDpbk/j8kZvG3TG3rQdgQJLMMb9O+nIbkyl4BP/TJCnRummUGQlRW+S1mnfxmMZWCWRgqRecqQFnfWBwgn7+pNA/nKftTOplBzWZpAzRi4HWn0p2e72IcgJ2Pz6no0ldVYE2qJu5w7wmFFjRX+E4G94nZ0WPnZd+UnZwHzj1GXTSLhgF2OC6SVTgK4iOP2bTKQmnz5NjdQlIF0GVa1QqgS2VSE7hTbpM83YFIl9VwIiVpdvFuZApqFmECjdRSKSP4BB1XouQcTdtkE0mnrTMfeEswbsKgXh+dnuTs08OgninAgMBAAECggEAZt5C/vG/kpld7p0O8RC0+orJQj4NymZ2vgItEGRCqoKnTSJ7XYgaU/s1SiFS5+mtTvvzfHcaxRDTF1VlhVGDjjWjqHgxUik0VJgOLO2vGa6195oy3S2lQ/hc+Cu9Qm/JCVbulgnYrt7LRqTIB7zFioHrlt8ASVinOoqcibZdJjgNqvEnBwjqHxI7oyqEr5/Yz6hxNjoAeUr3b7Y37J3DKsD4L6koWRjvcoPi59FdkwBfCh63tYjJU1AXdU5pdHtl3+Ieu4G2oIRjwUlnH3FEVKhnFFECZ7i27QhK+IQrJdiJmSqCNzeJT0f0ZiUfMM/txYcpvI7i7FqyCJaYFhCtkQKBgQD+HM4Rhb+B7BWPKD/5h0zmplw+hyldOf7uo+jph861F73WV7DshD0inqyyXfXcX0fuMlNyXdxixCtlBdtGisR3IvY3wLPVzx7JcQ5z+NbXj4h3qPRfU3iu6gE2GCrkqVPjURRv/4Z6F6FxW03clSOp+SzzjyD8c2B1vrWBknBAbwKBgQC/bhxcNcNZ98EL51JI9H5aCSmOriZpA6Se4BQ6CLeGUzC+7/z2towNOswKNSJX3KRfsVUQuFuM4LejHXMvgkb1tAD0VFre/7P8XOn1RV96w3szv6kNXBzmvrl/K/Jk1UwoKkjqE6Ko6Oleru0WXw8C156gY+LFogBwNWagB3v3SQKBgHfXpeflqBfh+5j0ZpeME9yDgOWMYRmyjGSHsQTSI86MT9+So8In6500MEY+wgEYfpf77Bb35UQ/OCgAxxVRxK5bMrvAig/ACsj+JM7VAJ3Q949Xg0ih2TzE56VXaINGyGVgi772R7m1A1KuuN3bCGLVPTnwuqHU2B0vv/JH2eDJAoGAeoxgJXvZkqfz8s3ktIWoubTx4MCGIGZPpdHnwPtBmgF5zFJQjBRy9ik05Df9w2eh5wzcWzbajQZzKT46Nijdin/wuHmkLuxdaeqFcBo4NJweLBO/gqj8a4+fqtUUeQ6/kVr4kLl/QUjR1WaAqvix4GzuxNkNHN5ID41wJHSGHNkCgYEA4TVQiCPzyMIOizhLlNh0p5wIK+zUHs5fVamXm/pzgakhmzJxP9MfMhTuA3N11fR/JrJ2E+Nt9uDutWWGuRpty4/s0AKTCvXoVOZGwBvQ0vEk/S0dQuOxCC/ObQl9q3sZelEazVgqjVTgIUGuxRgKnA3mMoMoQvZ6c3JXUSym0rY=
-----END RSA PRIVATE KEY-----""" # 应用私钥
ALIPAY_PUBLIC_KEY = """-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAlDx4KdOtOQE+tBq6jHKKFenRaRe2gbBnleBk++5gki9IQuxVyZUGTJixstf2gELFHWrGanpnwmGggXsqG+Rm5ZLJOlmFM1k0XeAIDvi6tP/rM+ZDFSu1bMBYtT5vzgVZC7mzIvOp9gsT/puqd3aNZmlviLD0R6OYN0zvFX+5qADZV7A9ziA+nXPFSHreBh7yY/q9ophVZNeHGPoYkDVI5++RrF1cALKOdit0giN5vxpe3ch9z3E6+FZg3LiP+1RW3tMiDQfp/SlVs6bNhLUtmlI5r7+mtFCKDUCEpnQ3S9e0II6rzyVXRyKCFs7qi5YzyhhmO3tJJoe9ilEFyNzfRQIDAQAB
-----END PUBLIC KEY-----""" # 支付宝公钥
ALIPAY_RETURN_URL = "https://860576.xyz/payment/return" # 支付成功跳转地址
ALIPAY_NOTIFY_URL = "https://860576.xyz/payment/notify" # 支付异步通知地址
ALIPAY_DEBUG = False # 是否使用沙箱环境
# 开发模式配置
DEV_MODE = False # True=开发模式固定验证码False=生产模式(真实短信)
DEV_SMS_CODE = "888888" # 开发模式下的固定验证码
# Proxy Config
USE_PROXY = True # 是否开启代理
PROXY_URL = "https://127007.xyz/"
# 代理超时配置 (单位:秒)
PROXY_TIMEOUT_DEFAULT = 60 # 默认超时
PROXY_TIMEOUT_SHORT = 30 # 短任务超时 (轮询、小图片下载)
PROXY_TIMEOUT_LONG = 300 # 长任务超时 (5分钟视频下载、大文件)
PROXY_TIMEOUT_GENERATION = 600 # 生成任务超时 (10分钟AI 生成请求)