Skip to content

Jaye-520/Jaye-Yes-no

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Yes/No 抉择器(AI 增强版)

一个企业级架构的 Yes/No 决策系统,采用双灵魂 AI 架构,结合理性分析与玄学娱乐,根据用户输入的问题生成智能决策,并将操作记录保存到日志文件中。

技术栈

  • 后端:Python 3.14+, FastAPI 0.128.0
  • AI 集成:OpenAI SDK 1.35.10, DeepSeek API
  • 数据验证:Pydantic 2.12.5
  • 日志:Python logging 模块
  • 前端:HTML, CSS, JavaScript

项目结构

  • yes-no-decider/
    • src/ — 源代码目录
      • application/ — 应用逻辑层
        • decision.py — 核心决策逻辑
        • logger.py — 日志管理
        • ai_service.py — AI 服务层
      • presentation/ — 表现层
        • api/ — API 路由
      • infrastructure/ — 基础设施层
    • config/ — 配置文件目录
      • config.py — 配置管理
    • public/ — 静态文件目录
      • index.html — 主页面
    • logs/ — 日志文件目录
    • tests/ — 测试文件夹
      • test_decision.py — 决策逻辑测试
      • test_api.py — API 测试
    • main.py — 应用入口
    • requirements.txt — 依赖清单
    • .env.example — 环境变量示例
    • README.md — 项目文档

核心架构:双灵魂 AI 设计

1. 理性主导灵魂(AI_Rational)

  • 特点:严格基于事实与逻辑进行分析决策
  • 目标:确保绝对理性,杜绝幻觉,所有结论必须有可验证的事实依据
  • 应用场景:需要客观分析的决策场景
  • 置信度:0.85

2. 玄学/心灵主导灵魂(AI_Mystical)

  • 特点:实现类似"笔仙"的娱乐性功能,可进行未来预测
  • 目标:提供神秘、富有诗意的玄学解释
  • 应用场景:娱乐性决策,带有玄学色彩的问题
  • 置信度:0.7
  • 安全机制:明确标记为娱乐性质,与核心决策系统隔离

3. 机械辅助系统(Machine)

  • 特点:基于随机算法的机械决策
  • 目标:提供基础的决策能力,作为AI决策的 fallback
  • 置信度:0.5

安装和运行

1. 安装依赖

pip install -r requirements.txt

2. 配置环境变量

复制 .env.example 文件为 .env,并根据需要修改配置:

cp .env.example .env

3. 配置API

目前只支持DeepSeek的API 可以直接从官网申请 并将API填入config/config.py 中的deepseek_api_key

4. 运行应用

python main.py

应用将在 http://localhost:8000 启动,您可以通过浏览器访问该地址使用 Yes/No 抉择器。

4. API 文档

启动应用后,您可以访问 http://localhost:8000/docs 查看详细的 API 文档。

配置说明

核心配置项

配置项 类型 默认值 描述
DEEPSEEK_API_KEY 字符串 DeepSeek API 密钥
OPENAI_BASE_URL 字符串 https://api.deepseek.com AI API 基础 URL
OPENAI_MODEL 字符串 deepseek-chat AI 模型名称
AI_SOUL 字符串 machine AI 灵魂类型:machinerationalmystical
AI_TIMEOUT 整数 30 AI 请求超时时间(秒)
AI_MAX_RETRIES 整数 3 AI 请求最大重试次数
RATE_LIMIT_PER_MINUTE 整数 60 每分钟请求限制

灵魂切换机制

通过修改配置文件中的 AI_SOUL 参数,可以切换不同的决策灵魂:

  • machine:使用机械随机决策
  • rational:使用理性AI决策
  • mystical:使用玄学AI决策

API 接口

POST /api/decide

获取决策结果

请求体

{
  "input": "您的问题"
}

响应

{
  "decision": "YES",
  "timestamp": "2026-01-25T15:00:00.000000",
  "confidence": 0.85,
  "source": "AI_Rational",
  "rationale": "Rational AI decision based on facts and logic"
}

响应字段说明

  • decision:决策结果,YESNO
  • timestamp:决策生成时间戳
  • confidence:决策置信度,范围 0-1
  • source:决策来源,MachineAI_RationalAI_Mystical
  • rationale:决策基本理由

注意:AI决策的详细说明仅记录在日志中,不会返回给API响应

日志记录

日志格式

YYYY-MM-DD HH:MM:SS,mmm - logger_name - LOG_LEVEL - request_id - message

关键日志内容

  • 决策日志Decision made: YES (Source: AI_Rational) for input: 问题 - Explanation: 决策说明
  • AI API 调用Calling AI API for 理性 decision with model: deepseek-chat
  • AI 响应AI API response: 决策:Yes\n分析:...
  • 请求开始/结束:记录每个请求的生命周期
  • 错误日志:包含详细的错误信息和请求上下文

日志文件

所有决策操作都会记录到 logs/decision.log 文件中,日志文件大小限制为 10MB,超过后会自动备份,最多保留 5 个备份文件。

安全机制

  1. API 密钥管理:支持环境变量注入,避免硬编码
  2. 请求频率限制:默认每分钟 60 次请求,防止 API 滥用
  3. 错误处理:完善的异常处理机制,防止敏感信息泄露
  4. 娱乐功能隔离:玄学娱乐功能与核心决策系统隔离,确保稳定性
  5. 请求 ID 追踪:每个请求分配唯一 ID,便于日志追踪和调试

官方 API 调用文档

安装 OpenAI SDK

pip3 install openai

基本调用示例

import os
from openai import OpenAI

client = OpenAI(
    api_key=os.environ.get('DEEPSEEK_API_KEY'),
    base_url="https://api.deepseek.com"
)

response = client.chat.completions.create(
    model="deepseek-chat",
    messages=[
        {"role": "system", "content": "You are a helpful assistant"},
        {"role": "user", "content": "Hello"},
    ],
    stream=False
)

print(response.choices[0].message.content)

测试

运行测试用例:

pytest tests/

代码风格

  • 遵循 PEP8 代码风格
  • 使用 Google Style Guide 命名规范
  • 确保注释清晰、变量命名专业
  • 严格遵循企业级架构设计原则,确保系统模块化与低耦合

注意事项

  1. AI 密钥安全:确保 API 密钥不泄露,建议使用环境变量或加密存储
  2. 理性使用 AI:理性灵魂用于客观决策,玄学灵魂仅用于娱乐
  3. 请求频率限制:注意 API 请求频率,避免触发 rate limit
  4. 日志管理:定期清理日志文件,避免磁盘空间占用过大
  5. 版本兼容:确保 Python 版本 >= 3.14,以支持最新的依赖库

未来扩展

  • 支持更多 AI 模型和 API
  • 实现决策历史记录和分析
  • 添加用户认证和个性化决策
  • 支持多语言决策
  • 实现更复杂的决策算法
  • 添加可视化决策分析

许可证

MIT License

About

一个简单的yes no 决策器

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors