# landlord **Repository Path**: xianzi/landlord ## Basic Information - **Project Name**: landlord - **Description**: 斗地主 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-10-05 - **Last Updated**: 2026-10-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 斗地主预测系统(全本地) Python + Ollama + ChromaDB + FastAPI + httpx + Bootstrap + jQuery,无外部网络依赖。 ![效果图](images/thumb-01.png) ## 功能 - **手动录牌**:点选式录入「我的手牌 / 我出的 / 下家出的 / 上家出的」,已用牌自动置灰,杜绝重复录入 - **记牌器**:实时推算 54 张牌去向与场外剩余牌分布 - **手牌预测**:枚举对手可能持有的炸弹、王炸、三带、对子、顺子(5+)、连对(3+)、飞机 - **炸弹概率**:基于超几何分布,计算每个"四张未现"点数落在下家/上家手中的概率 - **出牌建议**:规则引擎(威胁评估、报单/报双警戒、出牌路线、记牌提示)+ Ollama LLM 建议 - **ChromaDB 知识库**:内置策略语料 + 历史牌局快照检索;chromadb 未装时自动降级为内存检索 - **优雅降级**:Ollama 离线时自动切换纯规则模式,界面显示状态徽章 ## 快速开始 ```bash pyenv shell 3.11 python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # chromadb 可选,装不上也能跑 ollama serve & # 可选:启用 LLM 建议 ollama pull qwen2.5:14b # 可选,可用 OLLAMA_MODEL 环境变量换模型 uvicorn main:app --host 0.0.0.0 --port 8000 # 浏览器打开 http://localhost:8000 ``` ## Docker ```bash docker build -t ddz . && docker run -p 8000:8000 ddz ``` ## 环境变量 | 变量 | 默认 | 说明 | |---|---|---| | `OLLAMA_HOST` | `http://localhost:11434` | Ollama 地址 | | `OLLAMA_MODEL` | `qwen2.5:14b` | 使用的模型 | ## API - `POST /api/state` 更新牌局(my_hand / my_played / opp1_played / opp2_played / opp1_left / opp2_left) - `POST /api/analyze` 返回剩余牌分布、炸弹概率、牌型预测、规则建议、LLM 建议 - `POST /api/reset` 重开;`GET /api/llm_status` 检测 Ollama