<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>wubigo on wubigo</title>
    <link>https://wubigo.com/</link>
    <description>Recent content in wubigo on wubigo</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 02 Jan 2026 22:52:47 +0800</lastBuildDate>
    <atom:link href="/" rel="self" type="application/rss+xml" />
    
    <item>
      <title>Claude Code Router Setup With Free Tier Llm</title>
      <link>https://wubigo.com/post/claude-code-router-setup-with-free-tier-llm/</link>
      <pubDate>Fri, 02 Jan 2026 22:52:47 +0800</pubDate>
      
      <guid>https://wubigo.com/post/claude-code-router-setup-with-free-tier-llm/</guid>
      <description>

&lt;h1 id=&#34;安装&#34;&gt;安装&lt;/h1&gt;

&lt;h2 id=&#34;安装claude-code&#34;&gt;安装claude code&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;PS C:\&amp;gt;irm https://claude.ai/install.ps1 | iex

PS C:\&amp;gt;claude -v
2.1.90 (Claude Code)
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;安装指定版本或稳定版&#34;&gt;安装指定版本或稳定版&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;&amp;amp; ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.90
&amp;amp; ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable

&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;安装claude-code-router&#34;&gt;安装claude-code-router&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;c:\&amp;gt;npm install -g @musistudio/claude-code-router
c:\&amp;gt;ccr -v
claude-code-router version: 2.0.0
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;配置&#34;&gt;配置&lt;/h1&gt;

&lt;p&gt;创建配置文件&lt;code&gt;~/.claude-code-router/config.json&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;{
  &amp;quot;LOG&amp;quot;: true,
  &amp;quot;PORT&amp;quot;: 3456,
  &amp;quot;LOG_LEVEL&amp;quot;: &amp;quot;info&amp;quot;,
  &amp;quot;Providers&amp;quot;: [{
    &amp;quot;name&amp;quot;: &amp;quot;gemini&amp;quot;,
    &amp;quot;api_base_url&amp;quot;: &amp;quot;https://generativelanguage.googleapis.com/v1beta/models/&amp;quot;,
    &amp;quot;api_key&amp;quot;: &amp;quot;${GEMINI_API_KEY}&amp;quot;,
    &amp;quot;models&amp;quot;: [&amp;quot;gemini-2.5-flash&amp;quot;, &amp;quot;gemini-2.5-pro&amp;quot;],
    &amp;quot;transformer&amp;quot;: { &amp;quot;use&amp;quot;: [&amp;quot;gemini&amp;quot;] }
  }],
  &amp;quot;Router&amp;quot;: {
    &amp;quot;default&amp;quot;: &amp;quot;gemini,gemini-2.5-flash&amp;quot;,
    &amp;quot;background&amp;quot;: &amp;quot;gemini,gemini-2.5-flash&amp;quot;,
    &amp;quot;image&amp;quot;: &amp;quot;gemini,gemini-2.5-flash&amp;quot;,
    &amp;quot;think&amp;quot;: &amp;quot;gemini,gemini-2.5-flash&amp;quot;
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;配置环境变量&lt;/p&gt;

&lt;p&gt;&lt;code&gt;C:\Users\bigo\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;$env:ANTHROPIC_BASE_URL = &amp;quot;http://127.0.0.1:3456&amp;quot;
$env:ANTHROPIC_AUTH_TOKEN = &amp;quot;ccr-local-key&amp;quot;
$env:ANTHROPIC_API_KEY = &amp;quot;&amp;quot;
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;启动&#34;&gt;启动&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;ccr code
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;检查错误日志&lt;/p&gt;

&lt;p&gt;&lt;code&gt;C:\Users\bigo\.claude-code-router\logs&lt;/code&gt;&lt;/p&gt;

&lt;h2 id=&#34;检查ccr日志&#34;&gt;检查CCR日志&lt;/h2&gt;

&lt;p&gt;通过PS转换ccr日志时间为可读格式&lt;/p&gt;

&lt;p&gt;&lt;code&gt;C:\Users\bigo\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1&lt;/code&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;env:ANTHROPIC_BASE_URL = &amp;quot;http://127.0.0.1:3456&amp;quot;
$env:ANTHROPIC_AUTH_TOKEN = &amp;quot;ccr-local-key&amp;quot;   # 很多配置默认用这个，或留空看日志
$env:ANTHROPIC_API_KEY = &amp;quot;&amp;quot;
$env:GEMINI_API_KEY=&amp;quot;gemini-key-aistudio&amp;quot;



# Claude Code Router 美化日志函数
function ccr-log {
    param([int]$Tail = 100)

    $logPath = &amp;quot;$HOME\.claude-code-router\logs\ccr-*.log&amp;quot;
    $latestLog = Get-ChildItem $logPath -ErrorAction SilentlyContinue | 
                 Sort-Object LastWriteTime -Descending | 
                 Select-Object -First 1

    if (-not $latestLog) {
        Write-Host &amp;quot;未找到 claude-code-router 日志文件&amp;quot; -ForegroundColor Red
        return
    }

    Write-Host &amp;quot;日志文件: $($latestLog.Name)  (最近 $Tail 行)&amp;quot; -ForegroundColor Green

    Get-Content $latestLog.FullName -Tail $Tail | ForEach-Object {
        if ($_ -match &#39;&amp;quot;time&amp;quot;:\s*(\d+)&#39;) {
            $unixMs = [long]$matches[1]
            $readableTime = [DateTimeOffset]::FromUnixTimeMilliseconds($unixMs).ToLocalTime().ToString(&amp;quot;yyyy-MM-dd HH:mm:ss.fff&amp;quot;)
            # 正确转义后的替换
            $_ -replace &#39;&amp;quot;time&amp;quot;:\s*\d+&#39;, &amp;quot;`&amp;quot;time`&amp;quot;: `&amp;quot;$readableTime`&amp;quot;&amp;quot;
        } 
        else {
            $_
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;PS1 c:\&amp;gt;ccr-log |more

{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: Anthropic (endpoint: /v1/messages)&amp;quot;}       
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: gemini (endpoint: /v1beta/models/:modelAndAction)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: vertex-gemini (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: vertex-claude (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: deepseek (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: tooluse (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: openrouter (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: OpenAI (endpoint: /v1/chat/completions)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.332&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: maxtoken (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: groq (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: cleancache (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: enhancetool (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: reasoning (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: sampling (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: maxcompletiontokens (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: cerebras (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: streamoptions (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: customparams (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: vercel (no endpoint)&amp;quot;}
{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: openai-responses (endpoint: /v1/responses)&amp;quot;}{&amp;quot;level&amp;quot;:30,&amp;quot;time&amp;quot;: &amp;quot;2026-04-03 16:12:23.333&amp;quot;,&amp;quot;pid&amp;quot;:10396,&amp;quot;hostname&amp;quot;:&amp;quot;wu-pc&amp;quot;,&amp;quot;msg&amp;quot;:&amp;quot;register transformer: forcereasoning (no endpoint)&amp;quot;}
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Warp Integration With Zero Trust</title>
      <link>https://wubigo.com/post/warp-integration-with-zero-trust/</link>
      <pubDate>Fri, 05 Dec 2025 21:26:35 +0800</pubDate>
      
      <guid>https://wubigo.com/post/warp-integration-with-zero-trust/</guid>
      <description>

&lt;h1 id=&#34;warp配置&#34;&gt;WARP配置&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;cmd\&amp;gt;type conf.json

{

   &amp;quot;interface&amp;quot;: {
        &amp;quot;v4&amp;quot;: &amp;quot;172.16.0.2&amp;quot;,
        
    },
    &amp;quot;endpoints&amp;quot;: [
        {
            &amp;quot;v4&amp;quot;: &amp;quot;13.179.198.2:443&amp;quot;,
        },        
        
        {
            &amp;quot;v4&amp;quot;: &amp;quot;13.179.198.2:8443&amp;quot;,
            
        },
        {
            &amp;quot;v4&amp;quot;: &amp;quot;13.179.198.2:8095&amp;quot;,
            
        }
    ],
    &amp;quot;public_key&amp;quot;: &amp;quot;-----BEGIN PUBLIC KEY-----\nMFkwEwIKoZIzj0DAQcDQgAEIaU7MToJm9NKp8YfGxR6r+/h4mcG\n7SxI8tsW8OR1A5tv/zCzVbCRRh2t87/kxnP6lAy0lkr7qYwu+ox+k3dr6w==\n-----END PUBLIC KEY-----\n&amp;quot;,
    &amp;quot;account&amp;quot;: {
        &amp;quot;account_type&amp;quot;: &amp;quot;free&amp;quot;,
        &amp;quot;id&amp;quot;: &amp;quot;6fc1743e-fe50-b46a-58f52d1f&amp;quot;,
        &amp;quot;license&amp;quot;: &amp;quot;9VI4p0o6-h7T04t3P&amp;quot;
    },
    &amp;quot;policy&amp;quot;: {
        &amp;quot;onboarding&amp;quot;: null,
        &amp;quot;operation_mode&amp;quot;: null,
        &amp;quot;disable_auto_fallback&amp;quot;: null,
        &amp;quot;fallback_domains&amp;quot;: null,
        &amp;quot;proxy_port&amp;quot;: null,
        &amp;quot;exclude&amp;quot;: null,
        &amp;quot;gateway_id&amp;quot;: null,
        &amp;quot;support_url&amp;quot;: null,
        &amp;quot;allow_mode_switch&amp;quot;: null,
        &amp;quot;switch_locked&amp;quot;: null,
        &amp;quot;auto_connect&amp;quot;: null,
        &amp;quot;captive_portal&amp;quot;: null,
        &amp;quot;organization&amp;quot;: null,
        &amp;quot;allow_updates&amp;quot;: null,
        &amp;quot;allowed_to_leave&amp;quot;: null,
        &amp;quot;profile_id&amp;quot;: null,
        &amp;quot;lan_allow_minutes&amp;quot;: null,
        &amp;quot;lan_allow_subnet_size&amp;quot;: 24,
        &amp;quot;tunnel_protocol&amp;quot;: &amp;quot;masque&amp;quot;,
        &amp;quot;register_interface_ip_with_dns&amp;quot;: null,
        
        &amp;quot;sccm_vpn_boundary_support&amp;quot;: null,
        &amp;quot;speed_test_settings&amp;quot;: null,
        &amp;quot;post_quantum&amp;quot;: &amp;quot;enabled_with_downgrades&amp;quot;,
        &amp;quot;doh_outside_tunnel&amp;quot;: null,
        &amp;quot;enable_pmtud&amp;quot;: null,
        &amp;quot;dns&amp;quot;: null,
        &amp;quot;network_health_thresholds&amp;quot;: null
    },
    &amp;quot;valid_until&amp;quot;: &amp;quot;2025-12-06T11:24:19.193386Z&amp;quot;,
    &amp;quot;alternate_networks&amp;quot;: null,
    &amp;quot;dex_tests&amp;quot;: null,
    &amp;quot;install_root_ca&amp;quot;: false,
    &amp;quot;subnet_cidrs&amp;quot;: null,
    &amp;quot;tunnel_key_data&amp;quot;: {
        &amp;quot;key_type&amp;quot;: &amp;quot;secp256r1&amp;quot;,
        &amp;quot;tunnel_type&amp;quot;: &amp;quot;masque&amp;quot;
    },
    &amp;quot;device_identifiers&amp;quot;: &amp;quot;system_user&amp;quot;
}

&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;dns-处理&#34;&gt;DNS 处理&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;创建本地 DNS 拦截：把系统 DNS 修改指向 ::ffff:127.0.2.2 / 127.0.2.2（WARP 内置 DNS 转发器）&lt;/li&gt;
&lt;li&gt;实际 DNS 请求通过 DoH（DNS over HTTPS）发出，且 DoH 本身走 WARP 隧道 内（加密且受策略控制）&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;典型数据流-traffic-dns-模式&#34;&gt;典型数据流（Traffic + DNS 模式）&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;应用程序发包 → Windows 协议栈&lt;/li&gt;
&lt;li&gt;路由表指向 WARP 接口&lt;/li&gt;
&lt;li&gt;warp-svc 捕获包&lt;/li&gt;
&lt;li&gt;MASQUE 加密 → UDP/QUIC 发出到  Edge&lt;/li&gt;
&lt;li&gt;Gateway 做零信任策略（Web 过滤、DLP、CASB、SASE 等）&lt;/li&gt;
&lt;li&gt;出站到目标服务器&lt;/li&gt;
&lt;/ol&gt;

&lt;h1 id=&#34;warp诊断&#34;&gt;WARP诊断&lt;/h1&gt;

&lt;p&gt;运行warp-diag，warp把所有诊断信息及其日志信息打包，并默认发送到桌面，&lt;/p&gt;

&lt;p&gt;解压分析诊断信息。&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;cmd\&amp;gt;warp-diag

cmd\&amp;gt;type warp-tunnel-stats.txt

Tunnel Protocol: MASQUE (HTTP/3)
Endpoints: 13.179.198.2, ::
Time since last handshake: 2002s
Sent: 17.7MB; Received: 59.2MB
Estimated latency: 212ms
Estimated loss: 0.47%
TLS Handshake:
	Version: TLSv1.3
	Post-Quantum enabled: true
	Elliptic curve: P256Kyber65erDraft00
	Cipher suite: TLS_AES_256_GCM_SHA384

&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>在 Windows 上安装 llama-cpp-python 完整指南</title>
      <link>https://wubigo.com/post/llama-cpp-python-setup-on-windows/</link>
      <pubDate>Tue, 17 Jun 2025 16:42:02 +0800</pubDate>
      
      <guid>https://wubigo.com/post/llama-cpp-python-setup-on-windows/</guid>
      <description>

&lt;p&gt;在 Windows 上安装 llama-cpp-python 完整指南&lt;/p&gt;

&lt;p&gt;以下是在 Windows 系统上安装支持 GPU 加速的 llama-cpp-python 的详细步骤，包含常见问题解决方案和性能优化技巧&lt;/p&gt;

&lt;h2 id=&#34;安装前准备&#34;&gt;🛠 安装前准备&lt;/h2&gt;

&lt;h3 id=&#34;1-系统要求&#34;&gt;1. 系统要求&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;操作系统&lt;/strong&gt;：Windows 10 (64位)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python&lt;/strong&gt;：3.10 或更高版本&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;内存&lt;/strong&gt;：至少 16GB RAM&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;显卡&lt;/strong&gt;：AMD GPU (支持 Vulkan)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;2-安装必备组件&#34;&gt;2. 安装必备组件&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;安装 Python&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;python
Python 3.10.9 (tags/v3.10.9:1dd9be6, Dec  6 2022, 20:01:21) [MSC v.1934 64 bit (AMD64)] on win32
Type &amp;quot;help&amp;quot;, &amp;quot;copyright&amp;quot;, &amp;quot;credits&amp;quot; or &amp;quot;license&amp;quot; for more information
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;安装 Visual Studio Build Tools&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;下载 &lt;a href=&#34;https://visualstudio.microsoft.com/downloads/&#34; target=&#34;_blank&#34;&gt;Visual Studio 2022&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;安装时选择：

&lt;ul&gt;
&lt;li&gt;&amp;ldquo;Desktop development with C++&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;Windows &lt;sup&gt;10&lt;/sup&gt;&amp;frasl;&lt;sub&gt;11&lt;/sub&gt; SDK&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&amp;ldquo;C++ CMake tools&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;安装 CUDA Toolkit (NVIDIA 用户)&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;下载 &lt;a href=&#34;https://developer.nvidia.com/cuda-downloads&#34; target=&#34;_blank&#34;&gt;CUDA Toolkit 12.x&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;选择 Windows 版本安装&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;安装 CMake&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;从 &lt;a href=&#34;https://cmake.org/download/&#34; target=&#34;_blank&#34;&gt;CMake 官网&lt;/a&gt; 下载&lt;/li&gt;
&lt;li&gt;安装时勾选 &lt;strong&gt;&amp;ldquo;Add CMake to the system PATH&amp;rdquo;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;更新显卡启动&lt;/strong&gt;&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;驱动程序提供商: Advanced Micro Devices, inc.
驱动程序日期: 2025/3/6
驱动程序版本: 31.0.21923.1000
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 id=&#34;安装llama-cpp-python&#34;&gt;安装llama-cpp-python&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;cmd/&amp;gt;pip install llama-cpp-python --prefer-binary
&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;cmd/&amp;gt;pip show llama-cpp-python
Name: llama_cpp_python
Version: 0.3.9
Summary: Python bindings for the llama.cpp library
Home-page:
Author:
Author-email: Andrei Betlen &amp;lt;abetlen@gmail.com&amp;gt;
License: MIT
Location: c:\python310\lib\site-packages
Requires: diskcache, jinja2, numpy, typing-extensions
Required-by:
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;验证安装&#34;&gt;验证安装&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;import sys
import os
from ctypes import CDLL

try:
    # 尝试直接加载DLL
    dll_path = r&amp;quot;C:\Python310\lib\site-packages\llama_cpp\lib\llama.dll&amp;quot;
    CDLL(dll_path)
    print(&amp;quot;✅ DLL 加载成功!&amp;quot;)
    
    # 验证功能
    from llama_cpp import Llama
    llm = Llama(model_path=&amp;quot;ol.gguf&amp;quot;)  # 使用小测试模型
    print(llm.create_completion(&amp;quot;Hello&amp;quot;, max_tokens=10))
except Exception as e:
    print(f&amp;quot;❌ 错误: {e}&amp;quot;)
    print(&amp;quot;系统PATH:&amp;quot;, os.environ[&#39;PATH&#39;])
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>AI智能体开发实战--开发环境搭建</title>
      <link>https://wubigo.com/post/ai-agent-dev-notes/</link>
      <pubDate>Thu, 12 Jun 2025 10:23:07 +0800</pubDate>
      
      <guid>https://wubigo.com/post/ai-agent-dev-notes/</guid>
      <description>

&lt;p&gt;AI智能体开发&amp;ndash;环境搭建&lt;/p&gt;

&lt;h1 id=&#34;通过modelscope加速大模型下载&#34;&gt;通过modelscope加速大模型下载&lt;/h1&gt;

&lt;p&gt;要检查 ModelScope SDK 的版本，可以使用以下方法（根据你的使用环境选择）：&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;方法一-命令行检查-推荐&#34;&gt;🔧 方法一：命令行检查（推荐）&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;打开终端&lt;/strong&gt;（CMD/PowerShell/Terminal）&lt;/li&gt;

&lt;li&gt;&lt;p&gt;输入以下命令：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;pip show modelscope
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;查看输出中的 &lt;strong&gt;&amp;ldquo;Version&amp;rdquo;&lt;/strong&gt; 字段：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;Name: modelscope
Version: 1.26.0  # ← 这就是当前版本
Summary: ModelScope: bring the notion of Model-as-a-Service to life.
...
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;方法二-python-代码检查&#34;&gt;🐍 方法二：Python 代码检查&lt;/h3&gt;

&lt;p&gt;在 Python 环境中运行：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;import modelscope
print(f&amp;quot;ModelScope SDK 版本: {modelscope.__version__}&amp;quot;)
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;输出示例：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;ModelScope SDK 版本: 1.26.0
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;方法三-pip-列表查看&#34;&gt;📦 方法三：pip 列表查看&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;pip list | grep modelscope
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;输出：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;modelscope               1.26.0
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;版本兼容性参考表&#34;&gt;🔍 版本兼容性参考表&lt;/h3&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;SDK 版本&lt;/th&gt;
&lt;th&gt;主要特性&lt;/th&gt;
&lt;th&gt;Python 要求&lt;/th&gt;
&lt;th&gt;重要变更&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;≥ 1.13.0&lt;/td&gt;
&lt;td&gt;支持多模态大模型&lt;/td&gt;
&lt;td&gt;≥ 3.8&lt;/td&gt;
&lt;td&gt;优化了 HuggingFace 兼容性&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;1.10 - 1.12&lt;/td&gt;
&lt;td&gt;增强训练加速支持&lt;/td&gt;
&lt;td&gt;≥ 3.7&lt;/td&gt;
&lt;td&gt;重构了模型部署接口&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;&amp;lt; 1.9.0&lt;/td&gt;
&lt;td&gt;基础推理功能&lt;/td&gt;
&lt;td&gt;≥ 3.6&lt;/td&gt;
&lt;td&gt;旧版API（已不推荐）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;常见问题解决&#34;&gt;⚠️ 常见问题解决&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;找不到包&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;# 先安装 ModelScope SDK
pip install modelscope -U
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;权限错误&lt;/strong&gt;（Linux/macOS）：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;sudo pip install modelscope --upgrade
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;版本冲突&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;# 创建虚拟环境
python -m venv ms-env
source ms-env/bin/activate  # Linux/macOS
ms-env\Scripts\activate    # Windows
pip install modelscope==1.13.1
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;升级建议&#34;&gt;💡 升级建议&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;最新稳定版&lt;/strong&gt;（2025年6月）：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;pip install modelscope==1.13.1 -U
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;特定版本安装&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-bash&#34;&gt;pip install modelscope==1.12.3
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;📌 &lt;strong&gt;提示&lt;/strong&gt;：推荐保持 SDK ≥ 1.10.0 以获得完整的大模型支持（如 DeepSeek-VL, Qwen1.5-72B 等）。可通过 &lt;code&gt;pip list --outdated&lt;/code&gt; 检查可升级包。&lt;/p&gt;
&lt;/blockquote&gt;
</description>
    </item>
    
    <item>
      <title>获取深度行业研究报告的权威渠道和实用方法</title>
      <link>https://wubigo.com/post/in-depth-research-report-channel/</link>
      <pubDate>Wed, 16 Apr 2025 15:40:50 +0800</pubDate>
      
      <guid>https://wubigo.com/post/in-depth-research-report-channel/</guid>
      <description>

&lt;p&gt;以下是一些获取深度行业研究报告的权威渠道和实用方法，涵盖免费与付费资源，并附具体操作建议：&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;一-金融机构与研究平台&#34;&gt;&lt;strong&gt;一、金融机构与研究平台&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-券商研报&#34;&gt;1. &lt;strong&gt;券商研报&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;获取方式&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;东方财富Choice金融终端&lt;/strong&gt;：覆盖95%以上券商报告（需付费账号）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;慧博投研资讯&lt;/strong&gt;：免费注册可下载部分报告（每日限3篇）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;券商官网&lt;/strong&gt;：中金公司、中信证券等头部券商官网的「研究」板块&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：侧重二级市场，含行业趋势、公司估值模型（如DCF拆解）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;案例&lt;/strong&gt;：中金《2023年新能源汽车产业链竞争格局重构》报告中对宁德时代与比亚迪的技术路线对比&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-投行与咨询公司&#34;&gt;2. &lt;strong&gt;投行与咨询公司&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;顶级机构&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;麦肯锡（McKinsey）：官网「Insights」板块可筛选行业报告（如《2024全球能源展望》）&lt;/li&gt;
&lt;li&gt;贝恩（Bain）：每年发布《中国私募股权市场报告》&lt;/li&gt;
&lt;li&gt;高盛（Goldman Sachs）：需通过Prime服务获取（机构客户为主）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;特点&lt;/strong&gt;：数据权威，侧重战略层面分析&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;二-专业数据服务商&#34;&gt;&lt;strong&gt;二、专业数据服务商&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-金融终端&#34;&gt;1. &lt;strong&gt;金融终端&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;万得（Wind）&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;路径：研报平台→行业研究→输入关键词（如「半导体」）&lt;/li&gt;
&lt;li&gt;优势：可导出Excel格式的财务预测数据&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;彭博（Bloomberg）&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;使用「BI」命令调取行业分析（如 &lt;code&gt;BI ESG&amp;lt;GO&amp;gt;&lt;/code&gt; 获取ESG行业报告）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Capital IQ&lt;/strong&gt;：适合跨境并购中的行业对标分析&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-垂直行业数据库&#34;&gt;2. &lt;strong&gt;垂直行业数据库&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;头豹研究院&lt;/strong&gt;：覆盖新兴行业（如合成生物学、XR设备），报告结构清晰&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;艾瑞咨询&lt;/strong&gt;：互联网、消费领域数字化分析（如《2023年中国直播电商GMV拆解》）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IDC&lt;/strong&gt;：全球ICT市场数据（如服务器出货量季度追踪）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;三-政府与学术资源&#34;&gt;&lt;strong&gt;三、政府与学术资源&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-官方统计机构&#34;&gt;1. &lt;strong&gt;官方统计机构&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;国家统计局&lt;/strong&gt;：官网「统计年鉴」→「分行业数据」（如制造业PMI细分）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;工信部&lt;/strong&gt;：发布《中国工业和信息化发展白皮书》（含5G、新材料等规划）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;海关总署&lt;/strong&gt;：查询行业进出口数据（如光伏组件出口月度统计）&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-学术论文与智库&#34;&gt;2. &lt;strong&gt;学术论文与智库&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;知网/万方&lt;/strong&gt;：搜索「行业分析+CSSCI期刊」获取学术级报告&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;中国信通院&lt;/strong&gt;：通信、人工智能领域政策解读（如《全球数字经济白皮书》）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;赛迪智库&lt;/strong&gt;：制造业转型升级路径分析（含产能利用率等独家指标）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;四-行业会议与产业链资源&#34;&gt;&lt;strong&gt;四、行业会议与产业链资源&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-上市公司交流&#34;&gt;1. &lt;strong&gt;上市公司交流&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;财报说明会&lt;/strong&gt;：通过「全景网」等平台参与，获取管理层对行业预判&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;投资者关系平台&lt;/strong&gt;：如「上证e互动」提问行业共性问题（如「公司如何看待钠电池对锂电的替代速度？」）&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-行业峰会资料&#34;&gt;2. &lt;strong&gt;行业峰会资料&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;CES/AWE等展会&lt;/strong&gt;：官网「White Papers」板块下载技术趋势报告&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行业协会网站&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;中国汽车工业协会→《新能源汽车动力电池产业发展报告》&lt;/li&gt;
&lt;li&gt;中国光伏行业协会→年度装机量预测与技术路线图&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;五-第三方聚合平台&#34;&gt;&lt;strong&gt;五、第三方聚合平台&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-报告整合网站&#34;&gt;1. &lt;strong&gt;报告整合网站&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;发现报告&lt;/strong&gt;（www.fxbaogao.com）：按行业/热点分类（如「AI大模型」专题）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;行行查&lt;/strong&gt;（www.hanghangcha.com）：产业链图谱可视化+报告关联推荐&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;199IT&lt;/strong&gt;：专注互联网数据（含海外报告编译版）&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-数据导航工具&#34;&gt;2. &lt;strong&gt;数据导航工具&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;大数据导航&lt;/strong&gt;（hao.199it.com）：聚合各行业数据入口（如「医疗健康」板块链接到PDB药物综合数据库）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;六-另类数据渠道&#34;&gt;&lt;strong&gt;六、另类数据渠道&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-招股说明书&#34;&gt;1. &lt;strong&gt;招股说明书&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;证监会官网&lt;/strong&gt;：查找拟上市公司招股书「业务与技术」章节（含行业竞争分析）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;案例&lt;/strong&gt;：华虹半导体科创板招股书披露了全球晶圆代工市场份额及8英寸/12英寸产能对比&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-供应链数据&#34;&gt;2. &lt;strong&gt;供应链数据&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ImportGenius&lt;/strong&gt;：查询企业海关报关记录（分析原材料采购动向）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;企查查/天眼查&lt;/strong&gt;：通过供应商/客户关联挖掘产业链信息&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;3-卫星遥感与网络爬虫&#34;&gt;3. &lt;strong&gt;卫星遥感与网络爬虫&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sentinel Hub&lt;/strong&gt;：监测工厂开工率（如通过停车数量变化判断产能）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;爬虫应用&lt;/strong&gt;：抓取电商平台评论数据（分析消费电子产品用户痛点）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;七-免费获取技巧&#34;&gt;&lt;strong&gt;七、免费获取技巧&lt;/strong&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;搜索引擎高级指令&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;使用 &lt;code&gt;filetype:pdf 行业分析 2023&lt;/code&gt; 直接定位PDF报告&lt;/li&gt;
&lt;li&gt;限定站点搜索：&lt;code&gt;site:gov.cn 光伏 &amp;quot;十四五规划&amp;quot;&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;社交媒体资源&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;知识星球&lt;/strong&gt;：加入行业研究社群（如「硬核研报」圈子）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;知乎专栏&lt;/strong&gt;：关注「罗兰贝格」「波士顿咨询」等机构号&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;高校图书馆资源&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;通过校友权限访问ProQuest、EBSCO等学术数据库&lt;/li&gt;
&lt;li&gt;下载行业分析案例（如哈佛商学院案例库中的特斯拉供应链研究）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;注意事项&#34;&gt;&lt;strong&gt;注意事项&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;交叉验证&lt;/strong&gt;：对比不同来源数据（如券商预测装机量 vs 行业协会数据）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;时效性&lt;/strong&gt;：优先选择6个月内的报告（政策与技术迭代快的行业需3个月内）&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;客观性&lt;/strong&gt;：识别研报立场（如券商报告可能倾向覆盖标的公司）&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;掌握以上渠道，可通过「券商框架+咨询公司数据+产业链验证」的三维方式构建深度行业认知。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>构建证券分析智能体</title>
      <link>https://wubigo.com/post/security-analysis-llm-agent/</link>
      <pubDate>Wed, 16 Apr 2025 14:10:47 +0800</pubDate>
      
      <guid>https://wubigo.com/post/security-analysis-llm-agent/</guid>
      <description>

&lt;p&gt;以下是构建&lt;strong&gt;证券投资Agent&lt;/strong&gt;的系统化设计方案，涵盖架构设计、核心功能与技术实现路径，结合自动化分析与决策优势：&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;一-股票投资agent架构设计&#34;&gt;&lt;strong&gt;一、股票投资Agent架构设计&lt;/strong&gt;&lt;/h3&gt;

&lt;pre&gt;&lt;code class=&#34;language-mermaid&#34;&gt;graph TD
    A[数据源] --&amp;gt; B[数据采集层]
    B --&amp;gt; C[数据处理层]
    C --&amp;gt; D[分析决策层]
    D --&amp;gt; E[执行层]
    D --&amp;gt; F[监控反馈层]
    E --&amp;gt; G[交易平台]
    F --&amp;gt; D
    G --&amp;gt; H[用户终端]
&lt;/code&gt;&lt;/pre&gt;

&lt;h4 id=&#34;1-数据采集层&#34;&gt;&lt;strong&gt;1. 数据采集层&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;数据源类型&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;市场行情：实时K线/Tick数据（通过CTP接口或Wind API）&lt;/li&gt;
&lt;li&gt;基本面数据：财务报表、行业研报（Tushare/同花顺iFinD）&lt;/li&gt;
&lt;li&gt;另类数据：社交媒体情绪（Twitter/雪球情感分析）、供应链数据（海关进出口）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;技术实现&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;使用Python异步框架（如Celery）实现多源数据并行抓取&lt;/li&gt;
&lt;li&gt;部署增量更新机制（如记录最后采集时间戳）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-数据处理层&#34;&gt;&lt;strong&gt;2. 数据处理层&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;关键处理模块&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;# 示例：技术指标计算引擎
def compute_technical(df):
  df[&#39;MA20&#39;] = ta.SMA(df[&#39;close&#39;], timeperiod=20)
  df[&#39;RSI&#39;] = ta.RSI(df[&#39;close&#39;], timeperiod=14)
  df[&#39;MACD&#39;],_,_ = ta.MACD(df[&#39;close&#39;], fastperiod=12, slowperiod=26, signalperiod=9)
  return df
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;特征工程&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;滞后特征（如前5日收益率）&lt;/li&gt;
&lt;li&gt;波动率特征（布林带宽度）&lt;/li&gt;
&lt;li&gt;行业相对强弱（个股RSI vs 行业ETF RSI）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;3-分析决策层&#34;&gt;&lt;strong&gt;3. 分析决策层&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;多策略融合框架&lt;/strong&gt;
| 策略类型       | 模型示例                  | 适用场景               |
|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;ndash;|
| 趋势跟踪       | 双均线交叉策略            | 单边行情              |
| 均值回归       | RSI超买超卖策略           | 震荡行情              |
| 事件驱动       | 财报公布后跳空缺口策略    | 特定时间窗口          |
| 机器学习       | LSTM价格预测+随机森林分类 | 非线性关系捕捉        |&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;4-执行层&#34;&gt;&lt;strong&gt;4. 执行层&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;智能订单算法&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;TWAP（时间加权平均）：适用于大单拆解&lt;/li&gt;
&lt;li&gt;VWAP（成交量加权）：匹配市场交易节奏&lt;/li&gt;
&lt;li&gt;冰山订单：隐藏真实交易量&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;风险检查模块&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;def risk_check(order):
  if order.amount &amp;gt; position_limit * 0.1:  # 单笔交易不超过仓位10%
      return False
  if volatility &amp;gt; 0.05 and order.type == &#39;market&#39;:  # 高波动时禁止市价单
      return &#39;switch_to_limit_order&#39;
  return True
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;5-监控反馈层&#34;&gt;&lt;strong&gt;5. 监控反馈层&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;实时仪表盘指标&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;策略胜率/盈亏比&lt;/li&gt;
&lt;li&gt;最大回撤/夏普比率&lt;/li&gt;
&lt;li&gt;行业集中度预警&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;在线学习机制&lt;/strong&gt;：

&lt;ul&gt;
&lt;li&gt;使用强化学习框架（如Ray RLlib）动态优化参数&lt;/li&gt;
&lt;li&gt;异常检测（Isolation Forest识别策略失效）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;二-核心功能实现&#34;&gt;&lt;strong&gt;二、核心功能实现&lt;/strong&gt;&lt;/h3&gt;

&lt;h4 id=&#34;1-智能选股引擎&#34;&gt;&lt;strong&gt;1. 智能选股引擎&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;多因子筛选模板&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-sql&#34;&gt;SELECT stock_code 
FROM fundamental_data 
WHERE 
pe_ratio &amp;lt; industry_median * 0.7 AND 
roe &amp;gt; 15 AND 
debt_to_equity &amp;lt; 1 AND 
revenue_growth_3y &amp;gt; 20%
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;产业链图谱分析&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;构建行业上下游关联矩阵（如锂矿→正极材料→电池→整车）&lt;/li&gt;
&lt;li&gt;计算传导时滞（如碳酸锂价格变动对电池成本影响的滞后周期）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;2-自动化交易系统&#34;&gt;&lt;strong&gt;2. 自动化交易系统&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;高频策略示例&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;def HFT_strategy(tick_data):
  if (tick_data[&#39;bid1&#39;] &amp;gt; EMA10) and (tick_data[&#39;ask_volume&#39;] &amp;lt; 10000):
      send_order(side=&#39;buy&#39;, price=tick_data[&#39;bid1&#39;], quantity=500)
      set_stop_loss(price=EMA10 * 0.995)
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;套利策略&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ETF一二级市场折溢价套利&lt;/li&gt;
&lt;li&gt;期现基差回归策略&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;3-风险控制系统&#34;&gt;&lt;strong&gt;3. 风险控制系统&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;压力测试场景&lt;/strong&gt;：
| 风险类型       | 测试方法                  | 应对措施              |
|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;|&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;&amp;mdash;-|
| 流动性风险     | 模拟大单冲击成本测试      | 动态调整订单类型      |
| 极端行情       | 历史回撤（如2015年股灾） | 启动熔断机制         |
| 模型失效       | 监测策略夏普比率骤降      | 切换备用策略         |&lt;/li&gt;
&lt;/ul&gt;

&lt;h4 id=&#34;4-自然语言处理模块&#34;&gt;&lt;strong&gt;4. 自然语言处理模块&lt;/strong&gt;&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;舆情分析流程&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;新闻抓取 → 情感分类（BERT模型） → 事件类型标注 → 影响评分计算
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;案例&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;检测到&amp;rdquo;某光伏企业获得200亿大单&amp;rdquo; → 自动调高营收预测&lt;/li&gt;
&lt;li&gt;&amp;ldquo;监管层调查财务造假&amp;rdquo;新闻 → 触发持仓股扫描&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;三-技术栈选型建议&#34;&gt;&lt;strong&gt;三、技术栈选型建议&lt;/strong&gt;&lt;/h3&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;模块&lt;/th&gt;
&lt;th&gt;推荐工具&lt;/th&gt;
&lt;th&gt;优势说明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;数据存储&lt;/td&gt;
&lt;td&gt;ClickHouse + Redis&lt;/td&gt;
&lt;td&gt;高频写入与实时查询&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;回测引擎&lt;/td&gt;
&lt;td&gt;Backtrader / Qlib&lt;/td&gt;
&lt;td&gt;支持多资产类别与复杂事件驱动&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;机器学习&lt;/td&gt;
&lt;td&gt;PyTorch + Optuna&lt;/td&gt;
&lt;td&gt;动态超参数优化&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;实时计算&lt;/td&gt;
&lt;td&gt;Flink&lt;/td&gt;
&lt;td&gt;低延迟流处理&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td&gt;可视化&lt;/td&gt;
&lt;td&gt;Grafana + Plotly Dash&lt;/td&gt;
&lt;td&gt;交互式分析仪表盘&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;四-关键挑战与解决方案&#34;&gt;&lt;strong&gt;四、关键挑战与解决方案&lt;/strong&gt;&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;过拟合问题&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;使用Walk Forward Analysis（滚动窗口回测）&lt;/li&gt;
&lt;li&gt;加入随机噪声测试策略鲁棒性&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;实盘延迟&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;部署FPGA加速订单处理（延迟&amp;lt;1微秒）&lt;/li&gt;
&lt;li&gt;使用托管机房（交易所同城部署）&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;监管合规&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;接入券商PB系统（如华泰证券MATIC）&lt;/li&gt;
&lt;li&gt;设置单账户日交易限额&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;五-实践案例参考&#34;&gt;&lt;strong&gt;五、实践案例参考&lt;/strong&gt;&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;头部量化私募架构&lt;/strong&gt;：&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;数据中台 → 因子库（3000+因子） → 组合优化器 → 风险模型 → 执行系统
&lt;/code&gt;&lt;/pre&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;个人投资者轻量级方案&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;使用聚宽JoinQuant平台策略模板&lt;/li&gt;
&lt;li&gt;通过TradingView警报触发Python脚本交易&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;结语&#34;&gt;&lt;strong&gt;结语&lt;/strong&gt;&lt;/h3&gt;

&lt;p&gt;股票投资Agent的构建需要平衡&lt;strong&gt;策略有效性&lt;/strong&gt;与&lt;strong&gt;系统稳定性&lt;/strong&gt;。建议从模拟交易开始（如使用米筐RQData），逐步验证策略逻辑，再通过Docker容器化部署实现生产环境迁移。关键是要建立持续迭代机制——根据2023年的实践数据，每周更新因子权重的Agent比静态策略收益可提升27%以上。&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(注：实际开发需遵守当地金融监管规定，算法交易需向交易所报备)&lt;/em&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>空头持仓结构变化</title>
      <link>https://wubigo.com/post/%E7%A9%BA%E5%A4%B4%E6%8C%81%E4%BB%93%E7%BB%93%E6%9E%84%E5%8F%98%E5%8C%96/</link>
      <pubDate>Sat, 12 Apr 2025 20:44:38 +0800</pubDate>
      
      <guid>https://wubigo.com/post/%E7%A9%BA%E5%A4%B4%E6%8C%81%E4%BB%93%E7%BB%93%E6%9E%84%E5%8F%98%E5%8C%96/</guid>
      <description>

&lt;h1 id=&#34;贴水扩大的空头信号&#34;&gt;贴水扩大的空头信号&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;高警觉&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;前5空头席位净空连续3日增加&#34;&gt;前5空头席位净空连续3日增加&lt;/h2&gt;

&lt;h2 id=&#34;新资金进入空头-新席位出现&#34;&gt;新资金进入空头（新席位出现）&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;中警觉&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;融券余额持续上升-对冲需求增&#34;&gt;融券余额持续上升（对冲需求增）&lt;/h2&gt;

&lt;h2 id=&#34;雪球产品密集触及敲入价位附近&#34;&gt;雪球产品密集触及敲入价位附近&lt;/h2&gt;

&lt;h2 id=&#34;远月贴水-近月-结构性深贴水&#34;&gt;远月贴水 &amp;gt; 近月（结构性深贴水&lt;/h2&gt;

&lt;h2 id=&#34;总持仓放量但基差无明显收敛&#34;&gt;总持仓放量但基差无明显收敛&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;观察&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;总持仓放量但基差无明显收敛-1&#34;&gt;总持仓放量但基差无明显收敛&lt;/h2&gt;

&lt;h1 id=&#34;贴水收敛-转升水的多头信号&#34;&gt;贴水收敛 / 转升水的多头信号&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;强信号&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;空头席位大幅减仓-平仓行为&#34;&gt;空头席位大幅减仓（平仓行为）&lt;/h2&gt;

&lt;h2 id=&#34;政策限制量化做空-融券收紧&#34;&gt;政策限制量化做空 / 融券收紧&lt;/h2&gt;

&lt;h2 id=&#34;市场急速上涨-空头被迫回补&#34;&gt;市场急速上涨（空头被迫回补）&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;中信号&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;融券余额显著下降&#34;&gt;融券余额显著下降&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;周期性&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;季末换月前空头集中平仓&#34;&gt;季末换月前空头集中平仓&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;需辨别&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;h2 id=&#34;近月升水但远月仍贴水-结构分裂&#34;&gt;近月升水但远月仍贴水（结构分裂）&lt;/h2&gt;

&lt;h1 id=&#34;三类空头主体的监控重点&#34;&gt;三类空头主体的监控重点&lt;/h1&gt;

&lt;h2 id=&#34;量化对冲基金-持续性空头&#34;&gt;量化对冲基金&amp;ndash;持续性空头&lt;/h2&gt;

&lt;p&gt;最大空头来源。监控其α策略规模变化 —— 量化备案规模（协会数据）、量化指数增强产品规模、龙虎榜机构席位净空变化。规模扩张 → 贴水加深。&lt;/p&gt;

&lt;h2 id=&#34;雪球产品对冲盘-事件驱动空头&#34;&gt;雪球产品对冲盘&amp;ndash;事件驱动空头&lt;/h2&gt;

&lt;p&gt;敲入触发时集中对冲。监控：中证500当前点位距敲入价比例（通常−15%~−25%为敲入线）、新发雪球规模、已发产品到期时间分布。&lt;/p&gt;

&lt;h2 id=&#34;dma策略杠杆盘-隐性空头&#34;&gt;DMA策略杠杆盘&amp;ndash;隐性空头&lt;/h2&gt;

&lt;p&gt;通过IC期货加杠杆做空对冲，监控更难（席位不透明）。参考：中金所席位报告中异常新增大额空头、量化DMA产品规模估算（非公开）。&lt;/p&gt;

&lt;h1 id=&#34;监控&#34;&gt;监控&lt;/h1&gt;

&lt;h2 id=&#34;盘后&#34;&gt;盘后&lt;/h2&gt;

&lt;p&gt;下载中金所持仓龙虎榜，记录前20席位多空净头寸变化&lt;/p&gt;

&lt;h2 id=&#34;当日&#34;&gt;当日&lt;/h2&gt;

&lt;p&gt;计算IC当月合约年化贴水率，与5日/20日均值对比&lt;/p&gt;

&lt;h2 id=&#34;每周&#34;&gt;每周&lt;/h2&gt;

&lt;p&gt;查上交所融券余额变化，判断做空对冲需求趋势&lt;/p&gt;

&lt;h2 id=&#34;决策&#34;&gt;决策&lt;/h2&gt;

&lt;p&gt;多信号共振（净空增+贴水深+融券升）= 谨慎；反向共振 = 关注收敛&lt;/p&gt;

&lt;h1 id=&#34;实操细节&#34;&gt;实操细节&lt;/h1&gt;

&lt;h2 id=&#34;龙虎榜的解读&#34;&gt;龙虎榜的解读&lt;/h2&gt;

&lt;p&gt;每个交易日收盘后约1小时，中金所官网（cffex.com.cn）公布各合约前20名会员的多头持仓量、空头持仓量及当日增减。关键不是绝对数字，而是连续几日的方向性变化——空头席位持续净增，即使基差当天没动，也是贴水即将扩大的领先信号&lt;/p&gt;

&lt;h2 id=&#34;净空比的计算&#34;&gt;净空比的计算&lt;/h2&gt;

&lt;p&gt;用（总空头持仓 − 总多头持仓）/ 总持仓量。这个比率在−10%附近通常属于正常对冲需求；超过−20%往往意味着方向性空头力量在累积，贴水大概率继续扩大&lt;/p&gt;

&lt;h2 id=&#34;雪球敲入距离的估算方法&#34;&gt;雪球敲入距离的估算方法&lt;/h2&gt;

&lt;p&gt;中证500指数当前点位，与过去12个月内发行的雪球产品约定敲入价（通常是发行时指数的75%~85%）做比较。当前点位距大批产品敲入线在5%~8%以内时，市场会对潜在集中对冲形成预期，本身就会拉大贴水。这个位置可以通过各大财富管理机构定期发布的雪球存续规模报告来估算。&lt;/p&gt;

&lt;h2 id=&#34;融券余额的局限&#34;&gt;融券余额的局限&lt;/h2&gt;

&lt;p&gt;融券余额是对冲需求的间接指标，但因为T+1结算和证券池限制，它滞后于IC空头持仓约1~2个交易日，更适合做趋势确认而非实时跟踪&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Stock Future Simulate Trading</title>
      <link>https://wubigo.com/post/stock-future-simulate-trading/</link>
      <pubDate>Mon, 07 Apr 2025 11:43:40 +0800</pubDate>
      
      <guid>https://wubigo.com/post/stock-future-simulate-trading/</guid>
      <description>

&lt;p&gt;要在 Python 中进行 A股股指期货的模拟交易，最标准且专业的方式是使用 &lt;strong&gt;CTP (Comprehensive Transaction Platform) 接口&lt;/strong&gt;。CTP 是国内期货公司普遍支持的交易系统。&lt;/p&gt;

&lt;p&gt;以下是实现 Python 模拟下单的三个主要途径，按从易到难排序：&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;1-使用开源量化交易框架-vn-py-最推荐&#34;&gt;1. 使用开源量化交易框架：vn.py（最推荐）&lt;/h3&gt;

&lt;p&gt;&lt;code&gt;vn.py&lt;/code&gt; 是国内最流行的 Python 开源量化交易系统，它已经封装好了 CTP 接口，提供了完整的图形界面和脚本接口。&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;官方支持：&lt;/strong&gt; 提供专用的 &lt;a href=&#34;https://www.google.com/search?q=http://www.simnow.com.cn/&#34; target=&#34;_blank&#34;&gt;SimNow&lt;/a&gt;（中继交易平台）模拟环境对接。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;如何操作：&lt;/strong&gt;

&lt;ol&gt;
&lt;li&gt;前往 &lt;strong&gt;SimNow官网&lt;/strong&gt; 注册模拟账号（获取投资人账号、密码、BrokerID）。&lt;/li&gt;
&lt;li&gt;安装 vn.py：&lt;code&gt;pip install vnpy&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;通过 &lt;code&gt;vnpy_ctp&lt;/code&gt; 模块连接 SimNow 环境。&lt;/li&gt;
&lt;li&gt;调用 &lt;code&gt;send_order&lt;/code&gt; 函数即可下单。&lt;/li&gt;
&lt;/ol&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;2-使用原生-ctp-接口的-python-封装-适合进阶&#34;&gt;2. 使用原生 CTP 接口的 Python 封装（适合进阶）&lt;/h3&gt;

&lt;p&gt;如果你不想使用庞大的框架，可以只安装 CTP 的 Python 封装库（如 &lt;code&gt;tqsdk&lt;/code&gt; 或 &lt;code&gt;open_ctp&lt;/code&gt;）。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;天勤量化 (TqSdk)&lt;/strong&gt; 是目前上手最快的 Python 期货库，它的模拟交易环境（TqSim）非常稳定。&lt;/p&gt;

&lt;h4 id=&#34;示例代码-使用-tqsdk-进行模拟下单&#34;&gt;示例代码：使用 TqSdk 进行模拟下单&lt;/h4&gt;

&lt;pre&gt;&lt;code class=&#34;language-python&#34;&gt;from tqsdk import TqApi, TqAuth, TqAccount

# 1. 注册天勤账号并认证
api = TqApi(auth=TqAuth(&amp;quot;你的手机号&amp;quot;, &amp;quot;密码&amp;quot;))

# 2. 获取沪深300指数期货主力合约
quote = api.get_quote(&amp;quot;CFFEX.IF2406&amp;quot;)

# 3. 开启模拟交易账户（TqSim会自动分配虚拟资金）
# 也可以绑定真实的期货公司模拟账号
account = TqAccount(&amp;quot;SIM&amp;quot;, &amp;quot;123456&amp;quot;) 

# 4. 下单：买入开仓 1 手 IF2406 合约，价格为当前买一价
order = api.insert_order(symbol=&amp;quot;CFFEX.IF2406&amp;quot;, direction=&amp;quot;BUY&amp;quot;, offset=&amp;quot;OPEN&amp;quot;, volume=1, limit_price=quote.bid_price1)

print(f&amp;quot;模拟订单已提交，订单ID: {order.order_id}&amp;quot;)

# 5. 循环检查订单状态
while True:
    api.wait_update()
    if order.status == &amp;quot;FINISHED&amp;quot;:
        print(&amp;quot;模拟交易下单测试成功！&amp;quot;)
        break

api.close()
&lt;/code&gt;&lt;/pre&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;3-三大核心模拟环境对比&#34;&gt;3. 三大核心模拟环境对比&lt;/h3&gt;

&lt;p&gt;如果你准备编写 Python 代码，需要先拥有一个提供 API 接入的模拟账户：&lt;/p&gt;

&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th align=&#34;left&#34;&gt;平台名称&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;接入方式&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;优点&lt;/th&gt;
&lt;th align=&#34;left&#34;&gt;缺点&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;

&lt;tbody&gt;
&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;SimNow&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;CTP 接口&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;最接近实盘&lt;/strong&gt;，支持全品种&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;仅在交易日晚上和特定时间段维护，有时不稳定&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;天勤 (TqSdk)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;TqApi&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;代码最简洁&lt;/strong&gt;，无需处理复杂的 CTP 回调&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;部分高级功能可能收费&lt;/td&gt;
&lt;/tr&gt;

&lt;tr&gt;
&lt;td align=&#34;left&#34;&gt;&lt;strong&gt;聚宽 (JoinQuant)&lt;/strong&gt;&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;云端 Python&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;适合策略回测 + 模拟，无需配置本地环境&lt;/td&gt;
&lt;td align=&#34;left&#34;&gt;订单执行逻辑较理想化，与真实撮合有差异&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;技术避坑指南&#34;&gt;🛠️ 技术避坑指南&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;合约代码格式：&lt;/strong&gt; 股指期货在不同平台代码不同。中金所原始代码是 &lt;code&gt;IF2406&lt;/code&gt;，但在 TqSdk 中是 &lt;code&gt;CFFEX.IF2406&lt;/code&gt;，在 vn.py 中通常是 &lt;code&gt;IF2406.CFFEX&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;交易时间：&lt;/strong&gt; 模拟系统通常只在&lt;strong&gt;实盘交易时间&lt;/strong&gt;（周一至周五 9:30-11:30, 13:00-15:00）或&lt;strong&gt;夜盘模拟时段&lt;/strong&gt;才接受指令。非交易时间下单会报错。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AppID 与 授权码：&lt;/strong&gt; 即使是模拟 CTP 交易，现在很多环境也要求提供 &lt;code&gt;AppID&lt;/code&gt; 和 &lt;code&gt;AuthCode&lt;/code&gt;，这些通常可以在模拟平台公告中找到。&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>本地大模型知识库问答</title>
      <link>https://wubigo.com/post/chatchat-llm-notes/</link>
      <pubDate>Wed, 27 Mar 2024 09:43:56 +0800</pubDate>
      
      <guid>https://wubigo.com/post/chatchat-llm-notes/</guid>
      <description>

&lt;h1 id=&#34;本地部署&#34;&gt;本地部署&lt;/h1&gt;

&lt;h2 id=&#34;下载大模型&#34;&gt;下载大模型&lt;/h2&gt;

&lt;p&gt;&lt;a href=&#34;https://wubigo.com/post/llm-notes/&#34; target=&#34;_blank&#34;&gt;大模型下载&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://www.modelscope.cn/models/AI-ModelScope/bge-large-zh-v1.5&#34; target=&#34;_blank&#34;&gt;https://www.modelscope.cn/models/AI-ModelScope/bge-large-zh-v1.5&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.modelscope.cn/models/ZhipuAI/chatglm3-6b&#34; target=&#34;_blank&#34;&gt;https://www.modelscope.cn/models/ZhipuAI/chatglm3-6b&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&#34;chatglm3&#34;&gt;ChatGLM3&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;git clone https://github.com/THUDM/ChatGLM3
cd ChatGLM3
pip install -r requirements.txt
python
from transformers import AutoTokenizer, AutoModel
tokenizer = AutoTokenizer.from_pretrained(&amp;quot;/home/wubigo/model/ZhipuAI/chatglm3-6b&amp;quot;, trust_remote_code=True)
model = AutoModel.from_pretrained(&amp;quot;/home/wubigo/model/ZhipuAI/chatglm3-6b&amp;quot;, trust_remote_code=True, device=&#39;cuda&#39;)
model = model.eval()
response, history = model.chat(tokenizer, &amp;quot;你好&amp;quot;, history=[])
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;初始化知识库&#34;&gt;初始化知识库&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;git clone --recursive https://github.com/chatchat-space/Langchain-Chatchat.git
cd Langchain-Chatchat
pip install -r requirements.txt
python copy_config_example.py
python init_database.py --recreate-vs
&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;启动服务&#34;&gt;启动服务&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;python startup.py -a
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>CUDA内存不足</title>
      <link>https://wubigo.com/post/cuda-out-of-memory/</link>
      <pubDate>Tue, 19 Mar 2024 00:02:59 +0800</pubDate>
      
      <guid>https://wubigo.com/post/cuda-out-of-memory/</guid>
      <description>

&lt;p&gt;运行GLM报错&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;RuntimeError: CUDA out of memory. Tried to allocate 30.00 MiB (GPU 0; 7.43 GiB
total capacity; 6.58 GiB already allocated; 30.94 MiB free; 6.79 GiB reserved in 
total by PyTorch)
&lt;/code&gt;&lt;/pre&gt;

&lt;h1 id=&#34;检查gpu内存使用情况&#34;&gt;检查GPU内存使用情况&lt;/h1&gt;

&lt;pre&gt;&lt;code&gt;nvidia-smi
Mon Mar 18 23:59:31 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.161.07             Driver Version: 535.161.07   CUDA Version: 12.2     |
|-----------------------------------------+----------------------+----------------------+
| GPU  Name                 Persistence-M | Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp   Perf          Pwr:Usage/Cap |         Memory-Usage | GPU-Util  Compute M. |
|                                         |                      |               MIG M. |
|=========================================+======================+======================|
|   0  NVIDIA GeForce RTX 3090        Off | 00000000:3B:00.0 Off |                  N/A |
|  0%   39C    P8              24W / 350W |  12288MiB / 24576MiB |      0%      Default |
|                                         |                      |                  N/A |
+-----------------------------------------+----------------------+----------------------+

+---------------------------------------------------------------------------------------+
| Processes:                                                                            |
|  GPU   GI   CI        PID   Type   Process name                            GPU Memory |
|        ID   ID                                                             Usage      |
|=======================================================================================|
|    0   N/A  N/A     32326      C   /usr/bin/python3                          12276MiB |
+---------------------------------------------------------------------------------------+

&lt;/code&gt;&lt;/pre&gt;

&lt;h2 id=&#34;查找进程&#34;&gt;查找进程&lt;/h2&gt;

&lt;pre&gt;&lt;code&gt;pstree -s -p -a 32326

systemd,1 splash
  └─containerd-shim,31855 -namespace moby -id ac4d7b87c5f8d8ce59ff8b57d816ad118aa393bd1a75e1a2c59d9b13f024261d -address/run/con
      └─bash,31876
          └─python3,32085 startup.py -a
              └─python3,32326 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=24) 
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;可以看到该进程是从容器启动&lt;/p&gt;

&lt;h3 id=&#34;查找该容器id&#34;&gt;查找该容器ID&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;systemd-cgls

Control group /:
-.slice
├─1692 bpfilter_umh
├─docker
│ ├─8c7291a66fc7b1300d984dcc902fcd0c309d1e2c9da5607f52ab05ea1d3fdeae
│ │ ├─41064 /bin/bash /home/aisp-cloud-release/run.sh
│ │ └─41087 java -Dloader.path=.,config,lib -Xms2g -Xmx2g -jar aisp-auth-0.0.1-SNAPSHOT.jar --spring.config.location=./config/applicat&amp;gt;
│ ├─ac4d7b87c5f8d8ce59ff8b57d816ad118aa393bd1a75e1a2c59d9b13f024261d
│ │ ├─31876 /bin/bash
│ │ ├─32085 python3 startup.py -a
│ │ ├─32135 /usr/bin/python3 -c from multiprocessing.resource_tracker import main;main(16)
│ │ ├─32136 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=19) --multiprocess&amp;gt;
│ │ ├─32237 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=18) --multiprocess&amp;gt;
│ │ ├─32325 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=22) --multiprocess&amp;gt;
│ │ ├─32326 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=24) --multiprocess&amp;gt;
│ │ ├─32327 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=26) --multiprocess&amp;gt;
│ │ ├─32611 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=28) --multiprocess&amp;gt;
│ │ ├─32737 /usr/bin/python3 -c from multiprocessing.spawn import spawn_main; spawn_main(tracker_fd=17, pipe_handle=30) --multiprocess&amp;gt;
│ │ └─32819 /usr/bin/python3 /usr/local/bin/streamlit run webui.py --server.address 0.0.0.0 --server.port 8501 --theme.base light --th&amp;gt;
│ ├─f339cff950b499ecdeb0b6f51758cc734253feb523f366a0b44178571e173316

&lt;/code&gt;&lt;/pre&gt;

&lt;pre&gt;&lt;code&gt;docker ps |grep ac4d7b
ac4d7b87c5f8   45d060720b46     &amp;quot;/opt/nvidia/nvidia_…&amp;quot;   12 days ago    Up              chat_v1
&lt;/code&gt;&lt;/pre&gt;

&lt;h3 id=&#34;查找容器的启动命令&#34;&gt;查找容器的启动命令&lt;/h3&gt;

&lt;pre&gt;&lt;code&gt;docker run --rm -v /var/run/docker.sock:/var/run/docker.sock:ro \
    assaflavie/runlike   &amp;lt;container-id&amp;gt;
&lt;/code&gt;&lt;/pre&gt;
</description>
    </item>
    
    <item>
      <title>Bacnet vs Modbus工控协议对比</title>
      <link>https://wubigo.com/post/bacnet-vs-modbus/</link>
      <pubDate>Wed, 31 Jan 2024 16:59:12 +0800</pubDate>
      
      <guid>https://wubigo.com/post/bacnet-vs-modbus/</guid>
      <description>

&lt;h1 id=&#34;bacnet简介&#34;&gt;BACnet简介&lt;/h1&gt;

&lt;p&gt;BACnet协议(A Data Communication Protocol for Building Automation and Control Networks)，是由美国采暖、制冷和空调工程师协会（ASHRAE）制定的一个楼宇自动控制技术标准文件，BACnet协议最根本的目的是提供一种楼宇自动控制系统实现互操作的方法。BACnet协议并不能简单的认为是一种应用层的协议，而是包含四个层次的简化分层体系结构，这四层相当于OSI模型中的物理层、数据链路层、网络层和应用层。BACnet是用于楼宇自动化和控制网络的简短形式的数据通信协议。BACnet是主要行业供应商产品中常用的自动化和控制协议之一.BACnet应用包括照明控制，安全，消防，报警，HVAC（加热，通风，空调和与公用事业公司的接口）&lt;/p&gt;

&lt;h2 id=&#34;bacnet物理层&#34;&gt;BACnet物理层&lt;/h2&gt;

&lt;p&gt;BACnet上层不依赖于物理层。BACnet物理层使BACnet可以在不同的网络上实现。BACnet物理层已指定用于以下内容：
- ARCNET
- 以太网
- IP隧道
- BACnet / IP
- RS-232 (RS232用于点对点通信。RS485支持最多32个节点，距离为1200米，速率为76Kbps)
- RS485
- Lonworks / LonTalk&lt;/p&gt;

&lt;h2 id=&#34;服务原语&#34;&gt;服务原语&lt;/h2&gt;

&lt;p&gt;与ISO服务中的约定用法一致，BACnet中两个对等应用进程间的信息交换，被表示成抽象服务原语的交换。这些服务原语用来传递一些特定的服务参数，本协议定义了四种服务原语：请求（request）、指示（indication）、响应（response）和证实（confirm）。
同样，本协议定义了下列几种服务：有证实（confirmed）服务：用CONF_SERV标记，表示客户方通过具体的服务请求实例向服务器方请求服务，服务器方通过响应请求来为客户方提供服务。存在客户/服务器模型、区分“请求方BACnet用户”和“响应方BACnet用户”等。
无证实（unconfirmed）服务：用UNCONF_SERV标记，只有“发送方BACnet用户”和“接收方BACnet用户”的概念，不存在客户/服务器模型，只有发送方和接收方，而不是请求-响应对。
分段确认（segment acknowledge）服务：用SEGMENT_ACK标记，为了实现长报文（长度大于通信网络、收/发设备所支持的长度）的传输，BACnet采取了应用层报文分段的机制来对报文进行分段。在BACnet中只有有证实请求（Confirmed-Request）和复杂确认（Complex-ACK）报文可能需要分段，因此分段还是BACnet的一个可选特性。
另外，还有差错（ERROR）服务，拒绝（REJECT）服务，中止（ABORT）服务。
因此，根据不同的服务类型和原语类型，据有下表所示的服务原语。这些原语中的信息，由各种协议数据单元（PDU：Protocol Data Unit）传递。&lt;/p&gt;

&lt;h2 id=&#34;服务选择&#34;&gt;服务选择&lt;/h2&gt;

&lt;p&gt;BACnet定义了以下几类可选择的服务，用于两个对等实体之间的交互。&lt;/p&gt;

&lt;h3 id=&#34;文件访问服务&#34;&gt;文件访问服务&lt;/h3&gt;

&lt;p&gt;定义一组访问和操作在BACnet设备中的文件的服务。文件只是一个抽象的概念,表示一个任意长度和意义的字节集合的网络可见形式。
基本读文件（AtomicReadFile）服务：一个客户端的BACnet用户使用基本读文件服务对某个文件进行一个“打开－读出－关闭”的操作。
基本写文件（AtomicWriteFile）服务：一个客户端的BACnet用户使用基本写文件服务对某个字节流进行一个“打开－写入－关闭”的操作，将它写入到文件的某个位置。&lt;/p&gt;

&lt;h3 id=&#34;对象访问服务&#34;&gt;对象访问服务&lt;/h3&gt;

&lt;h3 id=&#34;远程设备管理服务&#34;&gt;远程设备管理服务&lt;/h3&gt;

&lt;p&gt;定义一组远程设备管理服务。
- 设备通信控制（DeviceCommunicationControl）服务。
- 有证实专有传输（ConfirmedPrivateTransfer）服务。
- 无证实专有传输（UnconfirmedPrivateTransfer）服务。
- 重新初始化设备（ReinitializeDevice）服务。
- 有证实文本报文（ConfirmedTextMessage）服务。
- 无证实文本报文（UnconfirmedTextMessage）服务。
- 时间同步（TimeSynchronization）服务。&lt;/p&gt;

&lt;h1 id=&#34;modbus简介&#34;&gt;ModBus简介&lt;/h1&gt;

&lt;p&gt;Modbus 协议广泛应用于工业自动化、建筑自动化、环境监测、能源管理等领域，以下是一些常见的应用场景：工业自动化：Modbus 是一种常用的通信协议，可以实现工厂中各种设备的数据采集、控制和监测，如传感器、PLC、变频器、电机驱动器、控制器等设备。建筑自动化：Modbus 可以用于建筑自动化系统中
modbus 是工业现场较为常用的总线协议，是应用层报文传输协议（OSI模型第7层），支持1对1传输、1对多传输。支持的模式有：modbus-TCP、modbus-RTU、modbus-ASCII。其中modbus-TCP是基于TCP/IP之上的应用协议。modbus-RTU、modbus-ASCII 是串口协议，主要的电气接口有：RS232、RS485。&lt;/p&gt;

&lt;p&gt;Modbus通信协议已经成为工业领域通信协议的业界标准（De facto），并且现在是工业电子设备之间常用的连接方式（一种行业规范）。此外，还具有三大特点：
- 公开发表并且无版权要求
- 易于部署和维护
- 修改移动本地的比特或字节没有很多限制&lt;/p&gt;

&lt;p&gt;概括来讲，Modbus协议就是一种用于工业控制的协议，Modbus具有免费使用、上手简单、需改方便三大特点，已经被广泛使用。&lt;/p&gt;

&lt;p&gt;Modbus协议主要分为Modbus TCP、Modbus RTU、Modbus ASCII、Modbus Plus四种&lt;/p&gt;

&lt;p&gt;Modbus协议是主从方式通信，也就是说，不能同步进行通信，总线上每次只有一个数据进行传输，即主机发送，从机应答，主机不发送，从机应答完毕后，总线上就没有数据通信。&lt;/p&gt;

&lt;h2 id=&#34;modbus-tcp协议&#34;&gt;Modbus TCP协议&lt;/h2&gt;

&lt;p&gt;Modbus TCP协议是用于管理和控制自动化设备的，它覆盖了使用TCP/IP协议的“Intranet”和“Internet”环境中Modbus报文的用途，Modbus RTU协议运行于以太网。&lt;/p&gt;

&lt;p&gt;Modbus TCP使用TCP/IP和以太网在站点间传送Modbus报文，Modbus TCP结合了以太网物理网络和网络标准TCP/IP以及以Modbus作为应用协议标准的数据表示方法。Modbus TCP通信报文被封装于以太网TCP/IP数据包中。与传统的串口方式，Modbus TCP插入一个标准Modbus报文到TCP报文中，不再带有数据校验和地址。&lt;/p&gt;

&lt;h2 id=&#34;modbus-rtu协议&#34;&gt;Modbus RTU协议&lt;/h2&gt;

&lt;p&gt;Modbus协议是运行于设备间的协议，或者说设备间必须要有Modbus RTU协议！这是Modbus协议上规定的，且默认模式必须是RTU协议。帧结构一般由地址、功能码、数据、校验组成。&lt;/p&gt;

&lt;p&gt;地址用于区分设备，占用一个字节，范围0-255，其中有效范围是1-247，其他有特殊用途，比如255是广播地址(广播地址就是应答所有地址，正常的需要两个设备的地址一样才能进行查询和回复)。&lt;/p&gt;

&lt;p&gt;功能码占用一个字节，意义在于指示这个指令的功能。&lt;/p&gt;

&lt;p&gt;数据根据功能码确认，不同的功能码有不同的数据结构。&lt;/p&gt;

&lt;p&gt;校验位是为了保证数据不出现错误而增加的。校验位将前面的数据进行计算，看数据是否一致，如果一致，就说明这帧数据是正确的，再进行回复;如果不一样，说明数据在传输过程中出了问题，数据产生错误。&lt;/p&gt;

&lt;h2 id=&#34;modbus-ascii协议&#34;&gt;Modbus ASCII协议&lt;/h2&gt;

&lt;p&gt;Modbus ASCII协议是建立在Modbus RTU协议上的，是将指令转换为ASCII字符进行传输的。比如Modbus RTU协议需要传输“12”，只需要一个字节；Modbus ASCII协议需要将“1”转换为“31”，“2”转化为“32”，再进行传输，需要占用两个字节，因此Modbus ASCII效率不高，使用率较低。&lt;/p&gt;

&lt;p&gt;总的来看，Modbus RTU协议和Modbus ACSII协议都是基于232和485链路的，所以其通讯模式半双工，一般是主机和从机的模式。其差别就是其字节的格式不同，一个是16进制的数据，一个是ASCII数据。&lt;/p&gt;

&lt;h2 id=&#34;modbus-plus协议&#34;&gt;Modbus PLUS协议&lt;/h2&gt;

&lt;p&gt;Modbus PLUS协议一般被称为MB+，是一种高速现场总线网络，也是一种典型的令牌总线网，针对工业控制应用的本地局域网系统。它允许计算机、可编程序控制器和其他数据源以对等方式进行通信，设备通过&amp;rdquo;令牌&amp;rdquo;的方式实现数据的交换，严格定义了令牌的传递方式、数据校验以及通信接口等方面的参数。数据传送速率达1Mbit/s，传输介质一般为为双绞线、同轴电缆或光纤。&lt;/p&gt;

&lt;h1 id=&#34;bacnet-vs-modbus&#34;&gt;BACnet  vs  Modbus&lt;/h1&gt;

&lt;h2 id=&#34;bacnet优势&#34;&gt;BACnet优势&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;支持更多的应用领域：BACnet协议不仅可以用于楼宇自动化系统，还可以应用于工业自动化、能源管理、物流管理等领域，而modbus协议主要应用于工业自动化领域。&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;更好的可扩展性：BACnet协议支持多种通信介质;如以太网、RS-485、无线网络等;可以根据实际需求进行扩展和升级。&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;更高的互操作性：BACnet协议是一种开放的标准协议，可以与不同厂商的设备进行互操作，而modbus协议则存在一些兼容性问题。&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;更强的安全性：BACnet协议支持多种安全机制，如身份认证、数据加密等，可以提高系统的安全性和可靠性。&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;综上所述，BACnet协议在应用范围、可扩展性、互操作性、安全性和数据传输精度等方面都具有优势，适用于更多的应用场景和需求。&lt;/p&gt;

&lt;h2 id=&#34;modbus的优势&#34;&gt;Modbus的优势&lt;/h2&gt;

&lt;p&gt;概括来讲，Modbus协议就是一种用于工业控制的协议，Modbus具有如下特性：
- 免费使用、
- 上手简单、
- 需改方便三大特点，已经被广泛使用。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>基于TRANSFORMER的生成式通用人工智能(AIGC WITH TRANSFORMER)</title>
      <link>https://wubigo.com/post/aigc-with-transformer/</link>
      <pubDate>Fri, 24 Nov 2023 13:55:30 +0800</pubDate>
      
      <guid>https://wubigo.com/post/aigc-with-transformer/</guid>
      <description>

&lt;h1 id=&#34;生成式通用人工智能的主要推动力&#34;&gt;生成式通用人工智能的主要推动力&lt;/h1&gt;

&lt;h2 id=&#34;transformer&#34;&gt;transformer&lt;/h2&gt;

&lt;p&gt;transformer在长序列文本数据模式提取和海量数据处理方面碾压RNN&lt;/p&gt;

&lt;h2 id=&#34;预训练模型&#34;&gt;预训练模型&lt;/h2&gt;

&lt;p&gt;预训练模型成功的应用到NLP领域&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>EMQX会话保持</title>
      <link>https://wubigo.com/post/mqtt5-session/</link>
      <pubDate>Wed, 08 Nov 2023 15:38:31 +0800</pubDate>
      
      <guid>https://wubigo.com/post/mqtt5-session/</guid>
      <description>

&lt;h1 id=&#34;默认会化过期时间&#34;&gt;默认会化过期时间&lt;/h1&gt;

&lt;p&gt;开源的EMQ设置的会话过期时间为 5 分钟，最大消息数为 1000 条，且不保存 QoS 0 消息。&lt;/p&gt;

&lt;p&gt;针对这两点，MQTT 5.0 提供了 Clean Start 和 Session Expiry Interval 这两个连接字段来控制会话的生命周期&lt;/p&gt;

&lt;h2 id=&#34;session-expiry-interval&#34;&gt;Session Expiry Interval&lt;/h2&gt;

&lt;p&gt;Session Expiry Interval 同样位于 CONNECT 报文的可变报头，不过它是一个可选的连接 属性。
它被用来指定会话在网络断开后能够在服务端保留的最长时间，如果到达过期时间但网络连接仍未恢复，
服务端就会丢弃对应的会话状态。它有三个典型的值：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;没有指定此属性或者设置为 0，表示会话将在网络连接断开时立即结束。&lt;/li&gt;
&lt;li&gt;设置为一个大于 0 的值，则表示会话将在网络连接断开的多少秒之后过期。&lt;/li&gt;
&lt;li&gt;设置为 0xFFFFFFFF，即 Session Expiry Interval 属性能够设置的最大值时，表示会话永不过期。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;服务端使用 Client ID 来唯一地标识每个会话，如果客户端想要在连接时复用之前的会话，那么必须使用与此前一致的 Client ID&lt;/p&gt;

&lt;p&gt;我们需要正确地评估持久会话对服务器资源的影响，会话过期时间越长，服务端需要花费的存储资源就可能越多。
虽然服务端通常并不会无限制地为客户端缓存消息，以 EMQX 为例，默认情况下每个客户端会话中能够缓存的最大消息数量为1000&lt;/p&gt;

&lt;h1 id=&#34;数据存储&#34;&gt;数据存储&lt;/h1&gt;

&lt;p&gt;路由数据是物联网连接集群中的核心数据，它存储设备订阅主题与集群节点的映射关系，在消息发布时根据消息主题信息查找所有匹配的节点，
用于集群内节点间的消息派发。在EMQX的实现中，路由数据存在于集群中的所有节点上。客户端的主题订阅数据，则只保存在连接所在的节点上，
用于节点内部派发消息到客户端。当客户端连接到集群某个节点订阅某个新的主题时，就会生成一条路由数据，该数据最终会同步到集群所有节点上，
每个节点都可以通过本地查询找到任意主题对应的订阅节点列表。当客户端发布消息时，连接所在节点会根据消息主题检索路由数据得到所有订阅
节点的信息，然后将消息派发到这些节点上.&lt;/p&gt;

&lt;h1 id=&#34;opc&#34;&gt;OPC&lt;/h1&gt;

&lt;p&gt;OPC UA 是一种面向工业自动化的机器到机器通信协议，由 OPC 基金会开发维护。OPC UA 提供一种标准化的方式， 使不同的设备和系统能够互相通信。
Neuron OPC UA 插件可作为客户端访问 KEPServerEX、Industrial Gateway OPC Server、Prosys Simulation Server、Ignition 等 OPC UA 服务器，
也可以直接访问硬件设备的内置 OPC UA Server，如西门子 S7-1200 型 PLC 的内置 Server、 欧姆龙 NJ 系列 PLC 的内置 Server 等。&lt;/p&gt;

&lt;p&gt;Neuron 可通过外部辅助程序 neuopc.exe 间接访问运行于 Windows 操作系统的 OPC DA 服务器。NeuOPC 通过将 DA 协议转换为 UA 协议，再通过
Neuron 已有的 OPC UA 插件进行数据获取，DA 的所有可访问点位都被映射至 UA 的&amp;rdquo;命名空间2&amp;rdquo;当中，点位的 ID 则与 DA 保持一致。&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>How to Speak</title>
      <link>https://wubigo.com/post/how-to-speak/</link>
      <pubDate>Sat, 29 Apr 2023 12:34:37 +0800</pubDate>
      
      <guid>https://wubigo.com/post/how-to-speak/</guid>
      <description>

&lt;p&gt;《How to Speak》（MIT OpenCourseWare，Patrick Winston教授演讲）的要点总结。
这是MIT持续40多年的经典演讲课，Patrick Winston教授分享如何在关键场合（如求职演讲、学术报告、口试）有效提升公众演讲能力，通过一些实用启发式规则（heuristics）来实践。&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;一-核心结论-最重要的三句话&#34;&gt;一、核心结论（最重要的三句话）&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;人生成功排序：表达能力 &amp;gt; 写作能力 &amp;gt; 思想质量&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;演讲能力 = &lt;strong&gt;知识（K） + 练习（P） + 天赋（T）&lt;/strong&gt;，其中&lt;strong&gt;知识最关键&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;演讲的本质：&lt;strong&gt;让你的想法被理解、被记住、被认可&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;二-如何开场-90-的人做错&#34;&gt;二、如何开场（90%的人做错）&lt;/h2&gt;

&lt;p&gt;❌ 不要一上来讲笑话
✔ 正确方式：&lt;strong&gt;“赋能式承诺（Empowerment Promise）”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 模板：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“听完这场演讲，你将学会 X，并且其中某一点会改变你的结果”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;本质：告诉听众“为什么要听你讲”&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;三-信息传达的核心技巧-非常实用&#34;&gt;三、信息传达的核心技巧（非常实用）&lt;/h2&gt;

&lt;h3 id=&#34;1-循环表达-cycle&#34;&gt;1️⃣ 循环表达（Cycle）&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;重要内容讲 &lt;strong&gt;3遍&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;因为任何时刻都有 ~20% 的人走神&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 类似：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;先说结构 → 讲内容 → 再总结&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;2-建立-边界-build-a-fence&#34;&gt;2️⃣ 建立“边界”（Build a Fence）&lt;/h3&gt;

&lt;p&gt;让你的观点&lt;strong&gt;不被混淆&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 方法：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;说明“这是什么”&lt;/li&gt;
&lt;li&gt;同时说明“这不是什么”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 本质：&lt;strong&gt;降低认知歧义&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;3-语言标点-verbal-punctuation&#34;&gt;3️⃣ 语言标点（Verbal Punctuation）&lt;/h3&gt;

&lt;p&gt;给听众“重新跟上的机会”&lt;/p&gt;

&lt;p&gt;👉 技巧：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“第一点…第二点…第三点…”&lt;/li&gt;
&lt;li&gt;明确结构提示&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;👉 本质：&lt;strong&gt;帮助听众在走神后重新进入&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;四-时间-场地-很多人忽略&#34;&gt;四、时间 &amp;amp; 场地（很多人忽略）&lt;/h2&gt;

&lt;h3 id=&#34;时间&#34;&gt;时间&lt;/h3&gt;

&lt;p&gt;✔ 最佳：&lt;strong&gt;上午中段（如 11 点）&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;不困&lt;/li&gt;
&lt;li&gt;不刚吃饭&lt;/li&gt;
&lt;/ul&gt;

&lt;h3 id=&#34;场地&#34;&gt;场地&lt;/h3&gt;

&lt;p&gt;✔ 三个关键：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;灯光要亮（防止困）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;提前踩点（避免意外）&lt;/li&gt;
&lt;li&gt;人数要“看起来合理”（避免冷场）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;五-工具使用-黑板-ppt&#34;&gt;五、工具使用（黑板 &amp;gt; PPT）&lt;/h2&gt;

&lt;h3 id=&#34;为什么黑板更好&#34;&gt;🎯 为什么黑板更好&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;速度 = 思考速度（更容易理解）&lt;/li&gt;
&lt;li&gt;有“视觉构建过程”&lt;/li&gt;
&lt;li&gt;手有事做（避免尴尬）&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h3 id=&#34;ppt-使用三大铁律&#34;&gt;PPT 使用三大铁律&lt;/h3&gt;

&lt;p&gt;❌ 常见错误：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;字太多&lt;/li&gt;
&lt;li&gt;字太小&lt;/li&gt;
&lt;li&gt;念PPT&lt;/li&gt;
&lt;li&gt;滥用激光笔&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✔ 正确做法：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;PPT是“调料”，不是主菜&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;每页只放核心信息&lt;/li&gt;
&lt;li&gt;字体 ≥ 40pt&lt;/li&gt;
&lt;li&gt;用箭头代替激光笔&lt;/li&gt;
&lt;/ul&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;六-如何让内容-被记住&#34;&gt;六、如何让内容“被记住”&lt;/h2&gt;

&lt;p&gt;提出一个非常关键的模型：&lt;/p&gt;

&lt;p&gt;👉 想被记住，你需要 4 个元素：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Symbol（符号）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Slogan（口号）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Surprise（反直觉）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Salient Idea（突出核心点）&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 本质：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;不是信息多，而是&lt;strong&gt;有记忆钩子&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;七-如何打动人-inspiration&#34;&gt;七、如何打动人（Inspiration）&lt;/h2&gt;

&lt;p&gt;三个来源：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;别人相信你可以（鼓励）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;让人用新角度看问题&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;你对内容有真正的热情（最重要）&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;👉 关键词：&lt;strong&gt;Passion（感染力）&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;八-求职演讲-极其重要&#34;&gt;八、求职演讲（极其重要）&lt;/h2&gt;

&lt;p&gt;👉 关键结论：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;你只有 5 分钟决定成败&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;必须做到：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;展示你的&lt;strong&gt;愿景（Vision）&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;证明你&lt;strong&gt;做过事（Done something）&lt;/strong&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;九-如何结尾-大多数人浪费&#34;&gt;九、如何结尾（大多数人浪费）&lt;/h2&gt;

&lt;p&gt;❌ 错误结尾：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Thank you&lt;/li&gt;
&lt;li&gt;Q&amp;amp;A&lt;/li&gt;
&lt;li&gt;合作者名单&lt;/li&gt;
&lt;li&gt;一堆结论&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;✔ 正确结尾：&lt;/p&gt;

&lt;p&gt;👉 最后一页必须是：
&lt;strong&gt;“Contributions（你的贡献）”&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;👉 本质：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;让听众带走“你做了什么”，而不是“你讲了什么”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;hr /&gt;

&lt;h2 id=&#34;十-终极方法论-总结一句话&#34;&gt;十、终极方法论（总结一句话）&lt;/h2&gt;

&lt;p&gt;👉 好演讲 =
&lt;strong&gt;清晰结构 + 重复强化 + 低认知负担 + 强记忆点 + 情绪感染&lt;/strong&gt;&lt;/p&gt;

&lt;hr /&gt;
</description>
    </item>
    
    <item>
      <title>WebGPU Notes</title>
      <link>https://wubigo.com/post/webgpu-notes/</link>
      <pubDate>Tue, 25 Apr 2023 15:41:55 +0800</pubDate>
      
      <guid>https://wubigo.com/post/webgpu-notes/</guid>
      <description>

&lt;p&gt;WebGPU is the new GPU API that available in browser. It&amp;rsquo;s one of the only 2 APIs that currently available to access the GPU from browser (the other is WebGL).&lt;/p&gt;

&lt;p&gt;WebGPU is the successor to WebGL, providing better compatibility with modern GPUs, support for general-purpose GPU computations, faster operations, and access to more advanced GPU features.&lt;/p&gt;

&lt;h1 id=&#34;webgl基本问题&#34;&gt;WebGL基本问题&lt;/h1&gt;

&lt;p&gt;WebGL has some fundamental issues that needed addressing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Since WebGL&amp;rsquo;s release, a new generation of native GPU APIs have appeared — the most popular being Microsoft&amp;rsquo;s Direct3D 12, Apple&amp;rsquo;s Metal, and The Khronos Group&amp;rsquo;s Vulkan — which provide a multitude of new features. There are no more updates planned to OpenGL (and therefore WebGL), so it won&amp;rsquo;t get any of these new features. WebGPU on the other hand will have new features added to it going forwards.&lt;/li&gt;
&lt;li&gt;WebGL is based wholly around the use case of drawing graphics and rendering them to a canvas. It does not handle general-purpose GPU (GPGPU) computations very well. GPGPU computations are becoming more and more important for many different use cases, for example those based on machine learning models.&lt;/li&gt;
&lt;li&gt;3D graphics apps are becoming increasingly demanding, both in terms of the number of objects to be rendered simultaneously, and usage of new rendering features.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;gpu类型&#34;&gt;GPU类型&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;集成GPU: 和CPU集成在一块主板上，共享内存&lt;/li&gt;
&lt;li&gt;独立GPU&lt;/li&gt;
&lt;li&gt;虚拟GPU: 在CPU上实现GPU&lt;/li&gt;
&lt;/ul&gt;

&lt;h1 id=&#34;onnx-runtime-web&#34;&gt;ONNX Runtime Web&lt;/h1&gt;

&lt;p&gt;ONNX(Open Neural Network Exchange) Runtime Web enables you to run and deploy machine learning models in your web application using JavaScript APIs and libraries.&lt;/p&gt;

&lt;p&gt;&lt;a href=&#34;https://github.com/microsoft/onnxruntime/pull/14579&#34; target=&#34;_blank&#34;&gt;WebGPU backend via JSEP&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
