Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NegotiationForge

本地优先的 AI 谈判模拟、策略分析与反事实推演平台

CI Python Next.js License

中文 · English

NegotiationForge 不只是一个聊天界面。它将 LLM 对话、可解释状态跟踪、逐轮态势分析和分支重演组合成一个完整的谈判实验环境:你可以尝试一种说法,观察对手状态变化,再回到关键轮次验证另一种策略。

无需 API Key 即可运行内置 Demo。真实谈判会话支持 DeepSeek、OpenAI 和 Gemini。

NegotiationForge 场景首页

为什么是 NegotiationForge

能力 实现方式 价值
状态化对手建模 持续跟踪满意度、耐心、关系、阶段与策略 对手不是无记忆的聊天机器人
逐轮态势分析 分析筹码、信息优势、关系、成交概率和满意度 将谈判过程转成可观察信号
反事实重演 从历史轮次 Fork,按不同策略生成替代路径 回答“如果当时换一种说法会怎样”
多模型适配 统一接入 DeepSeek、OpenAI 与 Gemini 可按成本、速度和效果切换模型
本地优先 SQLite 持久化,场景与配置保存在本机 数据边界清晰,方便学习和实验

产品预览

逐轮谈判与可解释态势分析

谈判工作台与关键转折分析

反事实分支推演

谈判 Fork 分支树

谈判复盘

谈判复盘与改进建议

核心流程

flowchart LR
    A[选择谈判场景] --> B[与 AI 对手多轮交涉]
    B --> C[更新对手隐状态]
    C --> D[生成逐轮态势分析]
    D --> E{继续还是结束?}
    E -->|继续| B
    E -->|结束| F[生成谈判复盘]
    D --> G[从关键轮次 Fork]
    G --> H[重演替代策略]
    H --> I[在分支树中对比结果]
Loading

技术架构

flowchart TB
    UI[Next.js 15 + React 19 UI]
    API[FastAPI REST API]
    SIM[Negotiation Simulation Engine]
    ANA[Analysis and Replay Services]
    LLM[LLM Provider Adapter]
    DB[(SQLite)]
    SCN[(JSON Scenarios)]

    UI --> API
    API --> SIM
    API --> ANA
    SIM --> LLM
    ANA --> LLM
    LLM --> DS[DeepSeek]
    LLM --> OA[OpenAI]
    LLM --> GM[Gemini]
    SIM --> DB
    ANA --> DB
    SCN --> SIM
Loading

前端使用 @xyflow/react 展示会话谱系;后端以 FastAPI 提供异步 API,通过 SQLAlchemy + aiosqlite 保存会话、轮次快照、分析结果和复盘。LLM 层统一处理超时、重试、HTTP 错误与响应校验。

功能一览

  • 六类内置场景:租房、薪资、离职补偿、供应商、融资和升学选择
  • 多轮 AI 对手交互与阶段化策略变化
  • 实时状态仪表盘与后台逐轮分析
  • 手动结束、自动成交或谈判破裂判定
  • 会话历史、分支谱系和级联删除
  • 指定轮次 Fork 与策略化 Replay
  • 结束后生成转折点、策略得失和改进建议
  • 本地场景 JSON 编辑与模型配置
  • 中英文界面与无密钥 Demo

立即体验

方式一:无 API Key Demo

启动项目后打开 http://localhost:3000,点击首页的 「试用 Demo(无需 API Key)」。系统会载入一条租房谈判主线和两条失败分支,可直接查看分析、复盘与分支树。

方式二:运行真实会话

要求:Python 3.11、Node.js 20+,以及一个受支持模型的 API Key。

git clone https://github.com/Powfu-zwx/NegotiationForge.git
cd NegotiationForge\backend
pip install -r requirements.txt
Copy-Item .env.example .env
python -m uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

在第二个终端中启动前端:

cd NegotiationForge\frontend
npm install
Copy-Item .env.local.example .env.local
npm run dev

打开 http://localhost:3000。API 文档位于 http://127.0.0.1:8000/docs

也可以在应用内的“本地设置”中填写模型配置,无需手动编辑 .env

模型配置

backend/.env 中选择提供商并填写对应密钥:

LLM_PROVIDER 默认模型 必需变量
deepseek deepseek-chat DEEPSEEK_API_KEY
openai gpt-4o-mini OPENAI_API_KEY
gemini gemini-2.0-flash GEMINI_API_KEY

如后端改用 8001 端口,请设置:

$env:NEXT_PUBLIC_API_URL="http://127.0.0.1:8001/api/v1"

API 与数据模型

主要 API 位于 /api/v1

路径 用途
POST /sessions 创建谈判会话
POST /sessions/{id}/chat 执行一轮谈判
GET /sessions/{id}/analysis 获取逐轮态势分析
POST /sessions/{id}/fork 从历史轮次创建分支
POST /sessions/{id}/replay 使用替代策略重演一轮
GET /sessions/{id}/fork-tree 获取会话分支树
POST /sessions/{id}/summary 生成结束复盘

场景由 JSON 描述,包含双方目标、可协商议题、对手人格、隐藏底线、让步规则和终止条件,因此无需修改核心代码即可扩展训练内容。

项目结构

NegotiationForge/
├── backend/
│   ├── app/api/          # FastAPI 路由
│   ├── app/llm/          # 多模型适配与容错
│   ├── app/services/     # 模拟、分析、Fork 与 Replay
│   ├── scenarios/        # JSON 谈判场景
│   └── tests/            # 后端回归测试
├── frontend/
│   ├── app/              # Next.js App Router
│   ├── components/       # 谈判工作台与分支树
│   └── lib/              # API、本地配置与视图模型
└── .github/workflows/    # 自动测试与构建

验证

cd backend
python -m pytest -q
ruff check app tests

cd ..\frontend
npm run check
npm run build

GitHub Actions 会在每次推送和 Pull Request 时执行同样的后端测试、静态检查与前端构建。

使用边界

这是面向本地单用户的训练与实验工具,不构成现实谈判、法律、财务或职业建议。项目没有实现公网部署所需的身份认证、租户隔离和密钥托管,请勿将开发服务器直接暴露到公网。

License

MIT License

About

An AI-powered negotiation simulator for practicing strategies, exploring alternative paths, and reviewing outcomes.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages