智能机器人的部署

🧩 第一步:在 Windows Server 安装 Python

1️⃣ 下载 Python 3.9 地址:Python Releases for Windows | Python.org

下载到服务器以后以管理员身份进行安装,安装时勾选:

✔ Add Python to PATH

安装完成后 CMD 测试:

python --version

🧩 第二步:安装必要库

🟢 第一步:升级 pip(非常重要)

在 CMD 输入:

python -m pip install --upgrade pip

等它自动完成。成功会看到:

Successfully installed pip

🟢 第二步:安装 FastAPI

在 CMD 输入:

pip install fastapi

等安装完成。如果成功,会看到:

Successfully installed fastapi

🟢 第三步:安装 uvicorn

pip install uvicorn

成功会显示:

Successfully installed uvicorn

🟢 第四步:安装 pymysql

pip install pymysql

🟢 第五步:安装 requests

pip install requests

🟢 第七步:安装 jieba(中文分词

pip install jieba

🟢 第七步:验证是否全部安装成功

输入:

pip list

你应该能看到:如果都在,说明安装成功 ✅

fastapi
uvicorn
pymysql
requests
jieba

在cmd中如果你能执行:

python

然后在里面输入:

import fastapi
import pymysql
import jieba
import requests

没有报错,就说明全部成功。退出:

exit()

🧩 第三步:确认 WordPress 数据库信息

🟢 ① 打开 WordPress 配置文件

进入你的网站目录,例如:

C:\phpstudy_pro\WWW\

找到文件:

wp-config.php

用记事本打开。找到这一段:

define('DB_NAME', '数据库名');
define('DB_USER', '用户名');
define('DB_PASSWORD', '密码');
define('DB_HOST', 'localhost');

把这四个信息记下来。

例如:

DB_NAME = wordpress
DB_USER = root
DB_PASSWORD = 123456
DB_HOST = localhost

🧩 第四步:写数据库测试脚本

在服务器桌面新建一个文件:

test_db.py

右键 → 编辑 → 粘贴下面代码:

import pymysql

try:
    conn = pymysql.connect(
        host="127.0.0.1",
        user="你的DB_USER",
        password="你的DB_PASSWORD",
        database="你的DB_NAME",
        charset="utf8mb4"
    )

    cursor = conn.cursor()
    cursor.execute("SELECT post_title FROM wp_posts WHERE post_status='publish' LIMIT 5")
    results = cursor.fetchall()

    print("数据库连接成功!")
    print("前5篇文章标题:")

    for row in results:
        print("-", row[0])

    conn.close()

except Exception as e:
    print("连接失败:", e)

⚠ 把:你的DB_USER你的DB_PASSWORD你的DB_NAME 替换成你真实的。保存文件。

🧩 第五步:运行测试脚本

打开 CMD

切换到桌面:

cd %USERPROFILE%\Desktop

然后运行:

python test_db.py

C:\Users\Administrator\Desktop>python test_db.py SyntaxError: Non-UTF-8 code starting with '\xca' in file C:\Users\Administrator\ Desktop\test_db.py on line 16, but no encoding declared; see https://python.org/ dev/peps/pep-0263/ for details C:\Users\Administrator\Desktop>

以上报错是编码错误,可以将test_db.py这个文件保存为UFT-8格式;

✅ 如果成功

你会看到:

数据库连接成功!
前5篇文章标题:
- xxxx
- xxxx
- xxxx

这说明我们已经能读取 WordPress 文章了。

🚀 第四步:做“站内优先搜索”功能

我们现在做一个:

输入问题 → 在文章内容里搜索 → 返回最相关文章

先做一个简单但稳定的版本(适合你2GB服务器)。

🧩 第一步:创建真正的机器人程序

在桌面新建:

ai_server.py

用 UTF-8 编码保存(一定要UTF-8)。

把下面完整代码粘进去:

# -*- coding: utf-8 -*-

from fastapi import FastAPI
import pymysql
import jieba
import uvicorn

app = FastAPI()


# ===== 数据库连接 =====
def get_articles():
    conn = pymysql.connect(
        host="127.0.0.1",
        user="你的DB_USER",
        password="你的DB_PASSWORD",
        database="你的DB_NAME",
        charset="utf8mb4"
    )

    cursor = conn.cursor()
    cursor.execute("SELECT post_title, post_content FROM wp_posts WHERE post_status='publish'")
    data = cursor.fetchall()
    conn.close()
    return data


# ===== 站内搜索函数 =====
def search_local(question):

    articles = get_articles()
    keywords = list(jieba.cut(question))

    best_match = None
    best_score = 0

    for title, content in articles:

        score = 0
        for word in keywords:
            if len(word) > 1 and word in content:
                score += 1

        if score > best_score:
            best_score = score
            best_match = (title, content)

    if best_score > 0:
        return f"根据本站文章《{best_match[0]}》:\n\n{best_match[1][:400]}..."
    else:
        return None


# ===== API接口 =====
@app.get("/ask")
def ask(question: str):

    answer = search_local(question)

    if answer:
        return {"answer": answer}
    else:
        return {"answer": "本站未找到相关内容,请换个问法。"}
        

if __name__ == "__main__":
    uvicorn.run(app, host="0.0.0.0", port=9000)

⚠ 记得把:你的DB_USER你的DB_PASSWORD你的DB_NAME 替换成真实数据库信息。保存。

🧩 第二步:启动机器人服务

在 CMD 输入:

cd %USERPROFILE%\Desktop
python ai_server.py

如果成功会看到:

Uvicorn running on http://0.0.0.0:9000

说明机器人启动成功。

🧩 第三步:浏览器测试

在浏览器打开:

http://服务器IP:9000/ask?question=ACS510怎么停机

如果一切正常,你会看到 JSON 格式:

{
  "answer": "根据本站文章《ACS510操作助手拔掉是否停机》:..."
}

🎉 恭喜,这就是你的“站内优先智能机器人”。

🧩 第四步:打开服务器的9000端口

🧩 第五步:在云服务器的防火墙也要打开9000端口

🚀 简易实现方法(Windows + phpStudy)

你现在用的是 Apache。

🧩 第一步:确认 Apache 开启代理模块

打开:

phpStudy → Apache → 配置文件 → httpd.conf

找到下面内容(如果有#,去掉#):

LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

确保它们是启用状态。保存。

🧩 第二步:修改你的站点 SSL 配置

打开:

C:\phpstudy_pro\Extensions\Apache2.4.39\conf\extra

找到你的 HTTPS 虚拟主机:

类似:

<VirtualHost *:443>
    ServerName cntworld.cn

在里面加:

ProxyPreserveHost On
ProxyPass /ask http://127.0.0.1:9000/ask
ProxyPassReverse /ask http://127.0.0.1:9000/ask

完整示例:

<VirtualHost *:443>
    ServerName cntworld.cn

    SSLEngine on
    SSLCertificateFile "你的证书路径"
    SSLCertificateKeyFile "你的私钥路径"

    ProxyPreserveHost On
    ProxyPass /ask http://127.0.0.1:9000/ask
    ProxyPassReverse /ask http://127.0.0.1:9000/ask

</VirtualHost>

保存。

🧩 第三步:重启 Apache

在 phpStudy 里点击:重启 Apache

🧩 第四步:测试

现在访问:

https://cntworld.cn/ask?question=ACS510怎样停机

⚠ 注意:现在不要写 :9000,应该直接访问:https://cntworld.cn/ask

🎯 成功后效果

访问方式 是否成功
http://cntworld.cn/ask
https://cntworld.cn/ask
http://cntworld.cn:9000 ❌(可以关)

🎯 正确解决思路(推荐注意)

不要让 Python 自己搞 SSL,而是:

让 Apache 代理 9000,统一走 443 端口

这叫:

✅ 反向代理(Reverse Proxy)

结构变成:

浏览器 https://cntworld.cn/ask
        ↓
Apache (443 + SSL)
        ↓
转发到 http://127.0.0.1:9000

这样:

  • ✔ 外部永远访问 443
  • ✔ Python 不需要 SSL
  • ✔ http / https 都统一
  • ✔ 最安全
  • ✔ 最标准

其中有几点需要注意:

C:\phpstudy_pro\Extensions\Apache2.4.39\conf\vhosts目录下的
cntworld.cn_443.conf是SSL证书内容;
C:\phpstudy_pro\Extensions\Apache2.4.39\conf\ssl目录下的对应的key,crt等证书
与C:\phpstudy_pro\Extensions\Apache2.4.39\conf\extra\httpd-ssl.conf文件里的内容是关联的;

转载请注明出处:  https://www.cntworld.cn
智能工控 » 智能机器人的部署

发表回复

提供最优质的资源集合

立即查看 了解详情
🤖 智能助手
你好!有什么问题可以问我 😊
文章加载时间:0.0037 秒