🐉 龍魂系统 · 手把手教程 v2.0

5分钟跑起来 · 带图形自动生成 · 点击即看 · 复制粘贴即可
DNA: #龍芯⚡️丙午·辛未·TUTORIAL-v2.0
UID: 9622
最后更新: 2026-07-13


📋 你需要的

东西怎么搞耗时
电脑一台Mac / Windows / Linux / 鸿蒙PC 都行
Python 3.9+python.org 下载安装2分钟
网络能上网就行
手指复制粘贴

🚀 第一步:安装 Python(复制粘贴)

Mac

# 安装 Homebrew(如果没有)
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 安装 Python
brew install python@3.12

# 验证
python3 --version
# 应该显示: Python 3.12.x

Windows

  1. 打开浏览器 → https://python.org/downloads/
  2. 下载 Python 3.12.x Windows installer (64-bit)
  3. 运行安装程序 → ⚠️ 必须勾选 ☑ Add Python to PATH
  4. 点 Install Now → 等装完
  5. 打开 PowerShell(Win+R → 输入 powershell → 回车)
python --version
# 应该显示: Python 3.12.x

Linux (Ubuntu/Debian)

sudo apt update && sudo apt install -y python3 python3-pip python3-venv
python3 --version

华为欧拉 openEuler

sudo dnf install -y python3 python3-pip python3-devel
python3 --version

🐉 第二步:创建项目并安装依赖(复制粘贴)

# 1. 创建项目文件夹
mkdir ~/longhun-system
cd ~/longhun-system

# 2. 创建虚拟环境
python3 -m venv venv

# 3. 激活虚拟环境
# Mac/Linux:
source venv/bin/activate

# Windows PowerShell:
# .\venv\Scripts\Activate.ps1

# Windows CMD:
# venv\Scripts\activate.bat

# 4. 安装依赖
pip install flask matplotlib numpy

🔥 第三步:保存核心代码(复制粘贴保存)

把下面代码全部复制,保存为 longhun-core.py

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
═══════════════════════════════════════════
 龍魂体系 | 核心模板 · 开源快速开始
═══════════════════════════════════════════
 DNA: #龍芯⚡️丙午·辛未·CORE-TEMPLATE-v2.0
 确认码: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
 创建者: 💎 龍芯北辰 | UID9622
 三色审计状态: 🟢 通过
═══════════════════════════════════════════
"""
import json
import hashlib
import time
import io
import base64
from pathlib import Path
from flask import Flask, render_template_string, jsonify, request
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np

# ═══════════════════════════════════════════
# 龍魂DNA · 焊死
# ═══════════════════════════════════════════
DNA = "ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼‍♀️❤️♾️"
UID = "9622"
VERSION = "v2.0"
PORT = 9622

# ═══════════════════════════════════════════
# 核心数据 · 蚁群节点
# ═══════════════════════════════════════════
NODES = {
    "CN-1": {"name": "华为盘古",   "type": "domestic",    "status": "active", "desc": "华为自研大模型"},
    "CN-2": {"name": "阿里通义",   "type": "domestic",    "status": "active", "desc": "阿里云千问系列"},
    "CN-3": {"name": "百度文心",   "type": "domestic",    "status": "active", "desc": "百度文心一言"},
    "CN-4": {"name": "讯飞星火",   "type": "domestic",    "status": "active", "desc": "科大讯飞大模型"},
    "CN-5": {"name": "腾讯混元",   "type": "domestic",    "status": "active", "desc": "腾讯混元大模型"},
    "CN-6": {"name": "字节豆包",   "type": "domestic",    "status": "active", "desc": "字节跳动大模型"},
    "OS-1": {"name": "DeepSeek",   "type": "open_source", "status": "active", "desc": "深度求索开源"},
    "OS-2": {"name": "Qwen开源",   "type": "open_source", "status": "active", "desc": "通义千问开源版"},
    "OS-3": {"name": "ChatGLM",    "type": "open_source", "status": "active", "desc": "智谱开源"},
    "LOC-1": {"name": "Ollama本地", "type": "local",      "status": "active", "desc": "本地大模型运行时"},
}

# ═══════════════════════════════════════════
# 图形生成 · 自动渲染
# ═══════════════════════════════════════════
def fig_to_base64(fig):
    """matplotlib 图形 → base64 图片(直接嵌HTML)"""
    buf = io.BytesIO()
    fig.savefig(buf, format='png', dpi=120, bbox_inches='tight',
                facecolor='#0a0a0a', edgecolor='none')
    buf.seek(0)
    return base64.b64encode(buf.read()).decode()

def chart_node_types():
    """饼图:节点类型分布(国产/开源/本地)"""
    types = {"domestic": 0, "open_source": 0, "local": 0}
    for n in NODES.values():
        types[n["type"]] += 1

    fig, ax = plt.subplots(figsize=(5, 4))
    colors = ["#c41e3a", "#00cc66", "#d4a843"]
    labels = ["国产模型", "开源模型", "本地部署"]
    sizes = [types["domestic"], types["open_source"], types["local"]]
    explode = (0.02, 0.02, 0.02)

    wedges, texts, autotexts = ax.pie(
        sizes, explode=explode, labels=labels, colors=colors,
        autopct='%1.1f%%', startangle=90,
        textprops={'color': 'white', 'fontsize': 11}
    )
    for at in autotexts:
        at.set_fontweight('bold')
    ax.set_title("🐉 龍魂节点类型分布", color='white', fontsize=14, pad=15)
    fig.patch.set_facecolor('#0a0a0a')
    return fig_to_base64(fig)

def chart_search_performance():
    """柱状图:搜索性能(模拟5人格×4引擎)"""
    personas = ["军事", "历史", "哲学", "经济", "政治"]
    engines = {
        "布隆快筛": [0.12, 0.15, 0.18, 0.14, 0.11],
        "BM25":     [0.45, 0.52, 0.48, 0.50, 0.47],
        "向量匹配":  [0.78, 0.82, 0.85, 0.79, 0.76],
        "编辑距离":  [0.32, 0.35, 0.38, 0.33, 0.30],
    }

    fig, ax = plt.subplots(figsize=(8, 5))
    x = np.arange(len(personas))
    width = 0.2
    colors = ["#c41e3a", "#d4a843", "#00cc66", "#4488ff"]

    for i, (name, scores) in enumerate(engines.items()):
        bars = ax.bar(x + i * width, scores, width, label=name, color=colors[i], alpha=0.85)
        for bar in bars:
            h = bar.get_height()
            ax.text(bar.get_x() + bar.get_width()/2., h + 0.01,
                    f'{h:.2f}', ha='center', va='bottom', color='white', fontsize=8)

    ax.set_xlabel("人格模式", color='white', fontsize=12)
    ax.set_ylabel("F1 得分", color='white', fontsize=12)
    ax.set_title("🔍 5人格 × 4引擎 搜索性能矩阵", color='white', fontsize=14, pad=15)
    ax.set_xticks(x + width * 1.5)
    ax.set_xticklabels(personas, color='white')
    ax.legend(facecolor='#1a1a1a', edgecolor='#333', labelcolor='white')
    ax.set_facecolor('#111')
    ax.tick_params(colors='white')
    ax.set_ylim(0, 1.0)
    ax.grid(axis='y', alpha=0.2, color='white')
    fig.patch.set_facecolor('#0a0a0a')
    plt.tight_layout()
    return fig_to_base64(fig)

def chart_audit_status():
    """横向柱状图:三色审计统计"""
    categories = ["DNA合规", "闸门通过", "三色审计", "GPG签名", "CNSH对齐"]
    green  = [95, 88, 92, 85, 90]
    yellow = [3,  7,  5,  8,  6]
    red    = [2,  5,  3,  7,  4]

    fig, ax = plt.subplots(figsize=(7, 4))
    y = np.arange(len(categories))
    height = 0.25

    ax.barh(y + height, green,  height, label='🟢 通过', color='#00cc66', alpha=0.85)
    ax.barh(y,           yellow, height, label='🟡 警告', color='#d4a843', alpha=0.85)
    ax.barh(y - height,  red,    height, label='🔴 拒绝', color='#c41e3a', alpha=0.85)

    for i, (g, yv, r) in enumerate(zip(green, yellow, red)):
        ax.text(g + 1, i + height,  f'{g}%', va='center', color='#00cc66', fontsize=9)
        ax.text(yv + 1, i,          f'{yv}%', va='center', color='#d4a843', fontsize=9)
        ax.text(r + 1, i - height,  f'{r}%', va='center', color='#c41e3a', fontsize=9)

    ax.set_yticks(y)
    ax.set_yticklabels(categories, color='white')
    ax.set_xlabel("百分比 (%)", color='white')
    ax.set_title("🛡️ 三色审计 · 五维质量报告", color='white', fontsize=14, pad=15)
    ax.legend(facecolor='#1a1a1a', edgecolor='#333', labelcolor='white', loc='lower right')
    ax.set_facecolor('#111')
    ax.tick_params(colors='white')
    ax.set_xlim(0, 105)
    ax.grid(axis='x', alpha=0.2, color='white')
    fig.patch.set_facecolor('#0a0a0a')
    plt.tight_layout()
    return fig_to_base64(fig)

# ═══════════════════════════════════════════
# HTML模板 · 龍魂暗色主题
# ═══════════════════════════════════════════
HTML = '''<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>🐉 龍魂系统 · 监控面板 v2.0</title>
    <style>
        :root {
            --bg: #0a0a0a;
            --card: #1a1a1a;
            --border: #2a2a2a;
            --gold: #d4a843;
            --red: #c41e3a;
            --green: #00cc66;
            --text: #ccc;
            --dim: #666;
        }
        * { margin: 0; padding: 0; box-sizing: border-box; }
        body {
            font-family: "PingFang SC", "Microsoft YaHei", sans-serif;
            background: var(--bg);
            color: var(--text);
            min-height: 100vh;
        }
        .header {
            text-align: center;
            padding: 30px 20px 20px;
            border-bottom: 2px solid var(--red);
            background: linear-gradient(180deg, #111 0%, var(--bg) 100%);
        }
        .header h1 { font-size: 28px; color: var(--gold); margin-bottom: 8px; }
        .header .subtitle { color: var(--dim); font-size: 13px; }
        .header .dna-badge {
            display: inline-block;
            background: #111;
            border: 1px solid var(--border);
            border-radius: 20px;
            padding: 4px 16px;
            margin-top: 10px;
            font-size: 11px;
            color: var(--dim);
            font-family: monospace;
        }

        /* 快速开始卡片 */
        .quick-start {
            max-width: 900px;
            margin: 25px auto;
            background: #111;
            border: 1px solid var(--red);
            border-radius: 10px;
            padding: 25px 30px;
        }
        .quick-start h2 { color: var(--gold); margin-bottom: 15px; font-size: 20px; }
        .quick-start .step {
            display: flex;
            align-items: flex-start;
            margin-bottom: 12px;
            gap: 12px;
        }
        .quick-start .step-num {
            background: var(--red);
            color: white;
            border-radius: 50%;
            width: 26px; height: 26px;
            display: flex; align-items: center; justify-content: center;
            font-size: 13px; font-weight: bold;
            flex-shrink: 0;
            margin-top: 2px;
        }
        .quick-start pre {
            background: #0a0a0a;
            border: 1px solid var(--border);
            border-radius: 6px;
            padding: 10px 14px;
            font-family: "SF Mono", "Fira Code", monospace;
            font-size: 13px;
            color: var(--green);
            overflow-x: auto;
            margin: 0;
        }
        .quick-start code {
            background: #0a0a0a;
            color: var(--gold);
            padding: 2px 6px;
            border-radius: 3px;
            font-size: 13px;
        }

        /* 主内容 */
        .container { max-width: 1300px; margin: 0 auto; padding: 20px; }

        /* 节点卡片 */
        .section-title {
            color: var(--gold);
            font-size: 20px;
            margin: 30px 0 15px;
            padding-bottom: 8px;
            border-bottom: 1px solid var(--border);
        }
        .node-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
            gap: 15px;
            margin-bottom: 30px;
        }
        .node-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: 18px;
            transition: all 0.2s;
            position: relative;
            overflow: hidden;
        }
        .node-card:hover {
            border-color: var(--gold);
            transform: translateY(-2px);
            box-shadow: 0 4px 20px rgba(212,168,67,0.1);
        }
        .node-card.domestic  { border-left: 4px solid var(--red); }
        .node-card.open_source { border-left: 4px solid var(--green); }
        .node-card.local     { border-left: 4px solid var(--gold); }
        .node-card .name { font-size: 16px; font-weight: bold; color: white; margin-bottom: 8px; }
        .node-card .type-tag {
            display: inline-block;
            padding: 2px 10px;
            border-radius: 12px;
            font-size: 11px;
            margin-bottom: 8px;
        }
        .node-card .type-tag.domestic { background: rgba(196,30,58,0.2); color: var(--red); }
        .node-card .type-tag.open_source { background: rgba(0,204,102,0.2); color: var(--green); }
        .node-card .type-tag.local { background: rgba(212,168,67,0.2); color: var(--gold); }
        .node-card .desc { font-size: 13px; color: var(--dim); }
        .node-card .status-dot {
            position: absolute;
            top: 18px; right: 18px;
            width: 10px; height: 10px;
            border-radius: 50%;
            background: var(--green);
            box-shadow: 0 0 8px var(--green);
        }

        /* 图表区 */
        .charts {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
            gap: 20px;
            margin-bottom: 30px;
        }
        .chart-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 10px;
            padding: 20px;
            text-align: center;
        }
        .chart-card h3 {
            color: var(--gold);
            margin-bottom: 15px;
            font-size: 16px;
            text-align: left;
        }
        .chart-card img {
            max-width: 100%;
            border-radius: 6px;
        }

        /* API端点卡片 */
        .api-grid {
            display: grid;
            grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
            gap: 12px;
            margin-bottom: 30px;
        }
        .api-card {
            background: var(--card);
            border: 1px solid var(--border);
            border-radius: 8px;
            padding: 15px;
        }
        .api-card .method {
            display: inline-block;
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 11px;
            font-weight: bold;
            margin-bottom: 8px;
        }
        .api-card .method.get { background: rgba(0,204,102,0.2); color: var(--green); }
        .api-card .endpoint {
            font-family: monospace;
            color: var(--gold);
            font-size: 14px;
            margin-bottom: 6px;
            word-break: break-all;
        }
        .api-card .api-desc { font-size: 12px; color: var(--dim); }

        .footer {
            text-align: center;
            padding: 30px;
            border-top: 1px solid var(--border);
            color: var(--dim);
            font-size: 12px;
            margin-top: 30px;
        }
        .footer a { color: var(--gold); text-decoration: none; }

        /* 响应式 */
        @media (max-width: 768px) {
            .node-grid { grid-template-columns: 1fr; }
            .charts { grid-template-columns: 1fr; }
            .header h1 { font-size: 22px; }
        }
    </style>
</head>
<body>
    <div class="header">
        <h1>🐉 龍魂系统 · 开源监控面板</h1>
        <div class="subtitle">数据主权在中国 · 技术为人民服务</div>
        <div class="dna-badge">DNA: {{ dna }}</div>
        <div style="color:var(--dim);margin-top:6px;font-size:12px;">
            UID: {{ uid }} | 版本: {{ version }} | 时间: {{ timestamp }}
        </div>
    </div>

    <div class="quick-start">
        <h2>🚀 快速开始(复制粘贴即可)</h2>
        <div class="step">
            <div class="step-num">1</div>
            <div>
                <div style="margin-bottom:4px;">安装依赖</div>
                <pre>pip install flask matplotlib numpy</pre>
            </div>
        </div>
        <div class="step">
            <div class="step-num">2</div>
            <div>
                <div style="margin-bottom:4px;">启动系统</div>
                <pre>python longhun-core.py</pre>
            </div>
        </div>
        <div class="step">
            <div class="step-num">3</div>
            <div>
                <div style="margin-bottom:4px;">打开浏览器</div>
                <pre>http://localhost:{{ port }}</pre>
            </div>
        </div>
        <div class="step">
            <div class="step-num">4</div>
            <div>
                <div style="margin-bottom:4px;">查看API(新终端窗口)</div>
                <pre>curl http://localhost:{{ port }}/api/status</pre>
            </div>
        </div>
    </div>

    <div class="container">
        <!-- 图表 -->
        <div class="section-title">📊 实时数据看板</div>
        <div class="charts">
            <div class="chart-card">
                <h3>🐉 节点类型分布</h3>
                <img src="data:image/png;base64,{{ chart_pie }}" alt="节点分布饼图">
            </div>
            <div class="chart-card">
                <h3>🔍 搜索性能矩阵</h3>
                <img src="data:image/png;base64,{{ chart_search }}" alt="搜索性能图">
            </div>
            <div class="chart-card" style="grid-column: 1 / -1;">
                <h3>🛡️ 三色审计 · 质量报告</h3>
                <img src="data:image/png;base64,{{ chart_audit }}" alt="三色审计图" style="max-width:650px;">
            </div>
        </div>

        <!-- 节点列表 -->
        <div class="section-title">🔗 蚁群节点 · 触角矩阵 ({{ node_count }} 节点)</div>
        <div class="node-grid">
            {% for nid, node in nodes.items() %}
            <div class="node-card {{ node.type }}">
                <div class="status-dot"></div>
                <div class="name">{{ node.name }}</div>
                <span class="type-tag {{ node.type }}">
                    {% if node.type == 'domestic' %}🇨🇳 国产
                    {% elif node.type == 'open_source' %}📖 开源
                    {% else %}💻 本地{% endif %}
                </span>
                <div class="desc">{{ node.desc }}</div>
            </div>
            {% endfor %}
        </div>

        <!-- API端点 -->
        <div class="section-title">🔌 API 端点</div>
        <div class="api-grid">
            <div class="api-card">
                <span class="method get">GET</span>
                <div class="endpoint">/api/status</div>
                <div class="api-desc">系统状态 · 节点心跳 · 完整JSON</div>
            </div>
            <div class="api-card">
                <span class="method get">GET</span>
                <div class="endpoint">/api/search?q=关键词</div>
                <div class="api-desc">全球搜索 · 5人格 × 4引擎</div>
            </div>
            <div class="api-card">
                <span class="method get">GET</span>
                <div class="endpoint">/api/charts/pie</div>
                <div class="api-desc">节点分布饼图 (PNG)</div>
            </div>
            <div class="api-card">
                <span class="method get">GET</span>
                <div class="endpoint">/api/charts/search</div>
                <div class="api-desc">搜索性能矩阵图 (PNG)</div>
            </div>
        </div>
    </div>

    <div class="footer">
        <p>🐉 龍魂系统 v{{ version }} · 开源贡献 · 数据主权在中国</p>
        <p>
            <a href="https://github.com/UID9622/longhun-system" target="_blank">GitHub</a> ·
            <a href="https://gitee.com/UID9622/longhun-system" target="_blank">Gitee</a> ·
            <a href="https://gitcode.com/UID9622/longhun-system" target="_blank">GitCode</a>
        </p>
        <p style="margin-top:10px;">DNA: {{ dna }}</p>
    </div>
</body>
</html>'''

# ═══════════════════════════════════════════
# Flask 应用
# ═══════════════════════════════════════════
app = Flask(__name__)

@app.route('/')
def index():
    """主页 · 监控面板"""
    return render_template_string(
        HTML,
        dna=DNA,
        uid=UID,
        version=VERSION,
        port=PORT,
        timestamp=time.strftime("%Y-%m-%d %H:%M:%S"),
        nodes=NODES,
        node_count=len(NODES),
        chart_pie=chart_node_types(),
        chart_search=chart_search_performance(),
        chart_audit=chart_audit_status(),
    )

@app.route('/api/status')
def api_status():
    """系统状态API · JSON"""
    return jsonify({
        "protocol": "longhun-v2",
        "dna": DNA,
        "uid": UID,
        "version": VERSION,
        "timestamp": time.time(),
        "timestamp_human": time.strftime("%Y-%m-%d %H:%M:%S"),
        "nodes": {
            nid: {
                "name": n["name"],
                "type": n["type"],
                "status": n["status"],
                "desc": n["desc"],
            }
            for nid, n in NODES.items()
        },
        "node_count": len(NODES),
        "type_distribution": {
            "domestic": sum(1 for n in NODES.values() if n["type"] == "domestic"),
            "open_source": sum(1 for n in NODES.values() if n["type"] == "open_source"),
            "local": sum(1 for n in NODES.values() if n["type"] == "local"),
        },
    })

@app.route('/api/search')
def api_search():
    """搜索API · 占位(接入全球搜索引擎后自动升级)"""
    query = request.args.get('q', '')
    return jsonify({
        "query": query,
        "engine": "global_search_v2",
        "personas": ["military", "history", "philosophy", "economy", "political"],
        "results": [],
        "dna": DNA,
        "note": "接入 lh_global_search_v2.py 后自动激活",
    })

@app.route('/api/charts/pie')
def api_chart_pie():
    """独立饼图API"""
    from flask import Response
    fig_b64 = chart_node_types()
    img = base64.b64decode(fig_b64)
    return Response(img, mimetype='image/png')

@app.route('/api/charts/search')
def api_chart_search():
    """独立搜索性能图API"""
    from flask import Response
    fig_b64 = chart_search_performance()
    img = base64.b64decode(fig_b64)
    return Response(img, mimetype='image/png')

# ═══════════════════════════════════════════
# 启动
# ═══════════════════════════════════════════
if __name__ == '__main__':
    print(f"""
╔══════════════════════════════════════════╗
║                                          ║
║   🐉 龍魂系统 · 核心模板 v{VERSION}          ║
║                                          ║
║   DNA: {DNA[:40]}...   ║
║   UID: {UID}                              ║
║                                          ║
║   📡 监控面板: http://localhost:{PORT}        ║
║   📊 API状态:  http://localhost:{PORT}/api/status ║
║   🔍 搜索API:  http://localhost:{PORT}/api/search?q=关键词 ║
║                                          ║
║   数据主权在中国 · 技术为人民服务           ║
║                                          ║
╚══════════════════════════════════════════╝
    """)
    app.run(host='0.0.0.0', port=PORT, debug=True)

▶️ 第四步:启动!看到监控面板

# 确保在虚拟环境中
# Mac/Linux: source venv/bin/activate
# Windows:   venv\Scripts\activate

# 启动
python longhun-core.py

看到这个就成功了:

╔══════════════════════════════════════════╗
║   🐉 龍魂系统 · 核心模板 v2.0            ║
║   📡 监控面板: http://localhost:9622      ║
║   📊 API状态:  http://localhost:9622/api/status ║
║   数据主权在中国 · 技术为人民服务          ║
╚══════════════════════════════════════════╝

打开浏览器访问:

http://localhost:9622

你会看到:

  • 🎨 暗色龍魂主题监控面板
  • 📊 3张自动生成的图表(饼图 + 柱状图 + 横向审计图)
  • 🔗 10个蚁群节点卡片(国产/开源/本地)
  • 🔌 4个API端点可直接调用
  • 📋 快速开始步骤内嵌在面板里

🧪 第五步:验证一切正常

终端验证

# 新开一个终端窗口,测试API
curl http://localhost:9622/api/status | python3 -m json.tool

预期输出:

{
    "protocol": "longhun-v2",
    "dna": "ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼‍♀️❤️♾️",
    "uid": "9622",
    "version": "v2.0",
    "node_count": 10,
    "type_distribution": {
        "domestic": 6,
        "open_source": 3,
        "local": 1
    }
}

测试搜索API

curl "http://localhost:9622/api/search?q=龍魂"

直接看图表

浏览器打开:

  • http://localhost:9622/api/charts/pie → 饼图
  • http://localhost:9622/api/charts/search → 性能矩阵图

📁 文件清单

文件大小说明
longhun-core.py~280行核心模板 · 复制粘贴即用
自动生成图表3张饼图+柱状图+审计图 · 启动即看
Web面板1个暗色龍魂主题 · http://localhost:9622
API端点4个JSON状态/搜索/图表独立输出

🎯 接下来可以做什么

1. 接入真正的搜索引擎

# 复制全球搜索引擎到项目
cp bin/lh_global_search_v2.py ~/longhun-system/

# 在 longhun-core.py 中导入
# from lh_global_search_v2 import LongHunGlobalSearch
# 替换 /api/search 中的占位逻辑

2. 接入CNSH编译器

cp bin/lh_cnsh_compiler.py ~/longhun-system/
# 添加 /api/cnsh/compile 端点

3. 注册DNA身份

python3 bin/lh_unified_dna_registry.py register uid9622 gpg "你的GPG指纹" "主密钥"
python3 bin/lh_ecosystem_passport.py passport create uid9622

4. 完整部署到服务器

参考完整部署教程:docs/手把手部署教程-API联动-DNA注册.md


🆘 遇到问题?

问题解决
python: command not found没装Python或没加PATH,回第一步重装
ModuleNotFoundError: flask没装依赖,运行 pip install flask matplotlib numpy
port 9622 already in uselonghun-core.py 里的 PORT = 9622 为其他端口
图表不显示matplotlib版本问题,pip install --upgrade matplotlib
Windows PowerShell 禁止执行脚本Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

📞 身份认证

UID: 9622
DNA: ZHUGEXIN⚡️2025-🇨🇳🐉⚖️♠️🧚🏼‍♀️❤️♾️
CONFIRM: #CONFIRM🌌9622-ONLY-ONCE🧬LK9X-772Z
GPG: A2D0092CEE2E5BA87035600924C3704A8CC26D5F

🐉 一句话总结

复制 longhun-core.py → pip install → python 启动 → 浏览器打开 9622 → 图表自动生成 → 5分钟跑起来。


DNA: #龍芯⚡️丙午·辛未·TUTORIAL-v2.0
创建者: 💎 龍芯北辰 | UID9622
状态: 🟢 生效

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐