<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ITs on 小马哥博客</title>
    <link>http://www.anxiaofei.cn/it/</link>
    <description>Recent content in ITs on 小马哥博客</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Sat, 06 Sep 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="http://www.anxiaofei.cn/it/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>企业微信配置与 ChatGPT-On-WeChat 部署指南</title>
      <link>http://www.anxiaofei.cn/it/chatgpt-on-wechat/</link>
      <pubDate>Sat, 06 Sep 2025 00:00:00 +0000</pubDate>
      <guid>http://www.anxiaofei.cn/it/chatgpt-on-wechat/</guid>
      <description>&lt;h2 id=&#34;一企业微信配置步骤&#34;&gt;一、企业微信配置步骤&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-注册企业微信&#34;&gt;1. 注册企业微信&lt;/h3&gt;&#xA;&lt;p&gt;注册地址：&lt;a href=&#34;https://work.weixin.qq.com/wework_admin/register_wx&#34;&gt;https://work.weixin.qq.com/wework_admin/register_wx&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-创建并配置应用&#34;&gt;2. 创建并配置应用&lt;/h3&gt;&#xA;&lt;p&gt;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/app_mange.jpg&#34; /&gt;   &#xA;    &#xA;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/api_receive.jpg&#34; /&gt;   &#xA;    &#xA;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/develop_api.png&#34; /&gt;   &#xA;    &#xA;创建应用后，需进行以下配置：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;网页授权及 JS-SDK&lt;/strong&gt;&#xA;这里需要验证域名，&lt;strong&gt;点击“申请校验域名”&lt;/strong&gt;，按照步骤操作即可。&#xA;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/set_domain.png&#34; /&gt;   &#xA;    &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;配置企业可信 IP&lt;/strong&gt;（就是你的服务器 ip 地址）&#xA;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/set_trust_ip.png&#34; /&gt;   &#xA;    &lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;设置 API 接收消息&lt;/strong&gt;（需提供 URL，微信会调用该接口进行验证，这里要先部署 chatgpt-on-wechat 才能验证）&#xA;企业微信文档：&lt;a href=&#34;https://developer.work.weixin.qq.com/document/10514&#34;&gt;https://developer.work.weixin.qq.com/document/10514&lt;/a&gt;&#xA;这一步设置很重要，需要先让 chatgpt-on-wechat 服务跑起来，才能验证url的功能。&#xA;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;&#34; src=&#34;http://www.anxiaofei.cn/images/it/chatgpt-on-wechat/set_api_receive.png&#34; /&gt;   &#xA;    &lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;3-获取关键信息&#34;&gt;3. 获取关键信息&lt;/h3&gt;&#xA;&lt;p&gt;请记录以下信息，后续部署会用到：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;企业ID&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;应用的Secret&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;应用的Agent ID&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;应用接收消息的Token&lt;/code&gt;（可随机生成）&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;应用接收消息的EncodingAESKey&lt;/code&gt;（可随机生成）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;二部署-chatgpt-on-wechat-项目&#34;&gt;二、部署 ChatGPT-On-WeChat 项目&lt;/h2&gt;&#xA;&lt;h3 id=&#34;1-项目地址&#34;&gt;1. 项目地址&lt;/h3&gt;&#xA;&lt;p&gt;github 地址：&lt;a href=&#34;https://github.com/zhayujie/chatgpt-on-wechat&#34;&gt;https://github.com/zhayujie/chatgpt-on-wechat&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;2-部署方式&#34;&gt;2. 部署方式&lt;/h3&gt;&#xA;&lt;p&gt;本文采用&lt;strong&gt;源码部署&lt;/strong&gt;方式，你也可以选择 Docker 部署（请自行探索）。&lt;br/&gt;&#xA;按照项目手册进行部署即可，这里不再赘述。&lt;/p&gt;&#xA;&lt;h3 id=&#34;3-配置步骤&#34;&gt;3. 配置步骤&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;复制配置文件：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;cp config-template.json config.json&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;编辑 &lt;code&gt;config.json&lt;/code&gt;，参照 &lt;code&gt;config.py&lt;/code&gt; 中的参数名称进行配置（&lt;strong&gt;这是重点！&lt;/strong&gt;）。&lt;/li&gt;&#xA;&lt;li&gt;启动应用：&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;python app.py&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;注意事项&#34;&gt;注意事项&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;确保企业微信中配置的 URL 可被外网访问，用于接收消息验证。&lt;/li&gt;&#xA;&lt;li&gt;配置 &lt;code&gt;config.json&lt;/code&gt; 时务必与 &lt;code&gt;config.py&lt;/code&gt; 中的参数名称保持一致。&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;我的config.json配置信息：&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;{&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;channel_type&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wechatcom_app&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;text_to_image&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;dall-e-2&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;voice_to_text&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;text_to_voice&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;openai&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;proxy&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;hot_reload&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;single_chat_prefix&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;bot&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;@bot&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;single_chat_reply_prefix&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;[bot] &amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;group_chat_prefix&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;@bot&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;group_name_white_list&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ChatGPT测试群&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;ChatGPT测试群2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;image_create_prefix&amp;#34;&lt;/span&gt;: [&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#x9;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;画&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;],&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;speech_recognition&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;group_speech_recognition&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;voice_reply_voice&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;conversation_max_tokens&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2500&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;expires_in_seconds&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;3600&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;character_desc&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;你是基于大语言模型的AI智能助手，旨在回答并解决人们的任何问题，并且可以使用多种语言与人交流。&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;temperature&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;0.7&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;subscribe_msg&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;感谢您的关注！\n这里是AI智能助手，可以自由对话。\n支持语音对话。\n支持图片输入。\n支持图片输出，画字开头的消息将按要求创作图片。\n支持tool、角色扮演和文字冒险等丰富的插件。\n输入{trigger_prefix}#help 查看详细指令。&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;use_linkai&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;false&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;linkai_api_key&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;linkai_app_code&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcom_corp_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【你的企业 id】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcomapp_token&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【应用接收消息的 token(随机生成)】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcomapp_secret&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【应用的 secret】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcomapp_agent_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【应用的 agent_id】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcomapp_aes_key&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【应用接收消息的 encoding_aes_key(随机生成)】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;wechatcomapp_port&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;9898&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;model&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;xunfei&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;xunfei_app_id&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【讯飞 app_id】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;xunfei_api_key&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【讯飞 api_key】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;xunfei_api_secret&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;【讯飞 api_secret】&amp;#34;&lt;/span&gt;,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;xunfei_domain&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;x1&amp;#34;&lt;/span&gt;, &lt;span style=&#34;color:#75715e&#34;&gt;//讯飞我用的 Spark X1-32K 大模型（json 格式，注释要删掉！）&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;#34;xunfei_spark_url&amp;#34;&lt;/span&gt;: &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;wss://spark-api.xf-yun.com/v1/x1&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;}&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
    </item>
    <item>
      <title>Markdown 全面教程</title>
      <link>http://www.anxiaofei.cn/it/markdown/</link>
      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
      <guid>http://www.anxiaofei.cn/it/markdown/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Markdown&lt;/strong&gt; 是一种轻量级标记语言，使用纯文本格式编写，可转换为结构化的 HTML。它简单易学，广泛应用于技术文档、博客、笔记和 README 文件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;目录&#34;&gt;目录&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%A0%87%E9%A2%98&#34;&gt;标题&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%96%87%E6%9C%AC%E6%A0%BC%E5%BC%8F&#34;&gt;文本格式&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%88%97%E8%A1%A8&#34;&gt;列表&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E9%93%BE%E6%8E%A5%E4%B8%8E%E5%9B%BE%E7%89%87&#34;&gt;链接与图片&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E4%BB%A3%E7%A0%81&#34;&gt;代码&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E8%A1%A8%E6%A0%BC&#34;&gt;表格&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%BC%95%E7%94%A8&#34;&gt;引用&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E5%88%86%E9%9A%94%E7%BA%BF&#34;&gt;分隔线&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#html-%E9%9B%86%E6%88%90&#34;&gt;HTML 集成&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E9%AB%98%E7%BA%A7%E6%8A%80%E5%B7%A7&#34;&gt;高级技巧&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5&#34;&gt;最佳实践&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;#%E8%B5%84%E6%BA%90%E6%8E%A8%E8%8D%90&#34;&gt;资源推荐&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;标题&#34;&gt;标题 &lt;a name=&#34;标题&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;使用 1-6 个 &lt;code&gt;#&lt;/code&gt; 创建标题：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;# 一级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;## 二级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;### 三级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;#### 四级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;##### 五级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;###### 六级标题&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h1 id=&#34;一级标题&#34;&gt;一级标题&lt;/h1&gt;&#xA;&lt;h2 id=&#34;二级标题&#34;&gt;二级标题&lt;/h2&gt;&#xA;&lt;h3 id=&#34;三级标题&#34;&gt;三级标题&lt;/h3&gt;&#xA;&lt;h4 id=&#34;四级标题&#34;&gt;四级标题&lt;/h4&gt;&#xA;&lt;h5 id=&#34;五级标题&#34;&gt;五级标题&lt;/h5&gt;&#xA;&lt;h6 id=&#34;六级标题&#34;&gt;六级标题&lt;/h6&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;文本格式&#34;&gt;文本格式 &lt;a name=&#34;文本格式&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;**粗体文本**  &#xA;*斜体文本*  &#xA;~~删除线文本~~  &#xA;&amp;lt;mark&amp;gt;高亮文本&amp;lt;/mark&amp;gt;&#xA;`行内代码`  &#xA;H&amp;lt;sub&amp;gt;2&amp;lt;/sub&amp;gt;O  &#xA;E = mc&amp;lt;sup&amp;gt;2&amp;lt;/sup&amp;gt;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;粗体文本&lt;/strong&gt;&lt;br&gt;&#xA;&lt;em&gt;斜体文本&lt;/em&gt;&lt;br&gt;&#xA;&lt;del&gt;删除线文本&lt;/del&gt;&lt;br&gt;&#xA;&lt;mark&gt;高亮文本&lt;/mark&gt;&lt;br/&gt;&#xA;&lt;code&gt;行内代码&lt;/code&gt;&lt;br&gt;&#xA;H&lt;sub&gt;2&lt;/sub&gt;O&lt;br&gt;&#xA;E = mc&lt;sup&gt;2&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;列表&#34;&gt;列表 &lt;a name=&#34;列表&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h4 id=&#34;无序列表&#34;&gt;无序列表&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;- 苹果&#xA;- 香蕉&#xA;  - 进口香蕉&#xA;  - 本地香蕉&#xA;- 橙子&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;苹果&lt;/li&gt;&#xA;&lt;li&gt;香蕉&#xA;&lt;ul&gt;&#xA;&lt;li&gt;进口香蕉&lt;/li&gt;&#xA;&lt;li&gt;本地香蕉&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;橙子&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;有序列表&#34;&gt;有序列表&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1. 第一步：准备材料&#xA;2. 第二步：混合原料&#xA;3. 第三步：烘烤&#xA;   1. 预热烤箱&#xA;   2. 放入模具&#xA;4. 第四步：装饰&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ol&gt;&#xA;&lt;li&gt;第一步：准备材料&lt;/li&gt;&#xA;&lt;li&gt;第二步：混合原料&lt;/li&gt;&#xA;&lt;li&gt;第三步：烘烤&#xA;&lt;ol&gt;&#xA;&lt;li&gt;预热烤箱&lt;/li&gt;&#xA;&lt;li&gt;放入模具&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;第四步：装饰&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h4 id=&#34;任务列表&#34;&gt;任务列表&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;- [x] 完成项目提案&#xA;- [ ] 编写代码文档&#xA;- [ ] 测试功能模块&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;input checked=&#34;&#34; disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 完成项目提案&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 编写代码文档&lt;/li&gt;&#xA;&lt;li&gt;&lt;input disabled=&#34;&#34; type=&#34;checkbox&#34;&gt; 测试功能模块&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;链接与图片&#34;&gt;链接与图片 &lt;a name=&#34;链接与图片&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h4 id=&#34;基本链接&#34;&gt;基本链接&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[GitHub](https://github.com)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://github.com&#34;&gt;GitHub&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;引用链接&#34;&gt;引用链接&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;学习更多 [Markdown 语法][1]&#xA;&#xA;[1]: https://www.markdownguide.org&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;学习更多 &lt;a href=&#34;https://www.markdownguide.org&#34;&gt;Markdown 语法&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;图片&#34;&gt;图片&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;![Markdown 标志](https://markdown-here.com/img/icon256.png)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;Markdown 标志&#34; src=&#34;https://markdown-here.com/img/icon256.png&#34; /&gt;   &#xA;    &lt;/p&gt;&#xA;&lt;h4 id=&#34;图片链接&#34;&gt;图片链接&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[![GitHub 标志](https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png)](https://github.com)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href=&#34;https://github.com&#34;&gt;&#xA;        &lt;img class=&#34;mx-auto&#34; alt=&#34;GitHub 标志&#34; src=&#34;https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png&#34; /&gt;   &#xA;    &lt;/a&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;代码&#34;&gt;代码 &lt;a name=&#34;代码&#34;&gt;&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h4 id=&#34;行内代码&#34;&gt;行内代码&lt;/h4&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;使用 `console.log()` 输出信息&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;使用 &lt;code&gt;console.log()&lt;/code&gt; 输出信息&lt;/p&gt;</description>
    </item>
    <item>
      <title>ubuntu24.04 通过部署ollama提供大模型api接口</title>
      <link>http://www.anxiaofei.cn/it/ollama_api/</link>
      <pubDate>Fri, 15 Aug 2025 00:00:00 +0000</pubDate>
      <guid>http://www.anxiaofei.cn/it/ollama_api/</guid>
      <description>&lt;p&gt;想部署一个大模型api接口，供自己在内网调用。&lt;br/&gt;&#xA;用AI生成部署方法，很多时候驴唇不对马嘴。&lt;br/&gt;&#xA;干脆自己写一篇完整的部署流程。&lt;/p&gt;&#xA;&lt;h2 id=&#34;服务器环境&#34;&gt;服务器环境&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ubuntu 24.04&lt;/li&gt;&#xA;&lt;li&gt;显卡 NVIDA 3090（显存24G）&lt;/li&gt;&#xA;&lt;li&gt;内存 32G&lt;/li&gt;&#xA;&lt;li&gt;硬盘 1T&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;部署&#34;&gt;部署&lt;/h2&gt;&#xA;&lt;h3 id=&#34;安装-ubuntu-驱动&#34;&gt;安装 ubuntu 驱动&lt;/h3&gt;&#xA;&lt;p&gt;踩过坑的痛！！！因为我是空白系统，直接上来安装ollama，确实装成功了，但发现跑起来非常慢，就连说个“你好”，都要5秒才回应。通过监控，原来是GPU没跑起来，是用CPU跑的，真蛋疼！&lt;br/&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;安装推荐驱动命令：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;- sudo ubuntu-drivers autoinstall &#xA;- 安装完重启重启命令：sudo reboot&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;安装cuda&#34;&gt;安装cuda&lt;/h3&gt;&#xA;&lt;p&gt;如果可以直接安装，那么不需要补充cuda仓库，直接安装就好了。&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# 先补充cuda仓库，这里一定注意自己匹配的系统版本和架构（我用的ubuntu 24.04，x86_64架构）：&#xA; - sudo apt-key adv --fetch-keys https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2404/x86_64/3bf863cc.pub`&#xA; - sudo add-apt-repository &amp;#34;deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2404/x86_64/ /&amp;#34;&#xA;# 安装：&#xA; - sudo apt-get update&#xA; - sudo apt-get install -y nvidia-container-toolkit（安装完重启）&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;安装ollama&#34;&gt;安装ollama&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;1. 安装命令（早上7点半速度很快）：curl -fsSL https://ollama.com/install.sh | sh&#xA;2. 验证ollama：ollama --version&#xA;3. 下载模型：ollama pull gpt-oss:20b&#xA;4. 增加对外接口的配置，配置文件里加一行：Environment=&amp;#34;OLLAMA_HOST=0.0.0.0:11434&amp;#34;&#xA;5. 重载配置：sudo systemctl daemon-reload&#xA;6. 重启服务：sudo systemctl restart ollama&#xA;7. 暂停服务：sudo systemctl stop ollama&#xA;&#xA;8. 其中第4步，我实测没生效，改用全局变量：&#xA;- 设置全局变量：sudo vim /etc/environment，&#xA;- 在后面追加一行：OLLAMA_HOST=0.0.0.0:11434，&#xA;- 别忘了重启系统：sudo reboot&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;strong&gt;排查：&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;ollama的配置文件：&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;/etc/systemd/system/ollama.service&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;&#xA;&lt;li&gt;查看端口占用：&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;sudo lsof -i :11434&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;监控显存&#34;&gt;监控显存&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;watch -n 1 nvidia-smi  # 每秒刷新一次，显示显存、利用率、温度等&#xA;watch -n 1 &amp;#39;nvidia-smi --query-gpu=memory.used,memory.total --format=csv&amp;#39; #只看显存&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;防火墙放行&#34;&gt;防火墙放行&lt;/h3&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# 添加放行端口：&#xA;- sudo ufw allow 11434/tcp&#xA;- sudo ufw allow 11434/udp # udp协议不用可以不加&#xA;# 查看防火墙规则：&#xA;sudo ufw status verbose&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
  </channel>
</rss>
