paulwong

2025年3月16日 #

安装docker mcp

下载docker-mcp https://github.com/docker/mcp-gateway/releases/latest@import url(http://www.blogjava.net/CuteSoft_Client/CuteEditor/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css);

移到:
Linux    ~/.docker/cli-plugins/docker-mcp
macOS    ~/.docker/cli-plugins/docker-mcp
Windows    %USERPROFILE%\.docker\cli-plugins


posted @ 2025-12-14 11:28 paulwong 阅读(27) | 评论 (0)编辑 收藏

解读RAG

向大模型输入问题,让大模型回答。
大模型的做法是,先自己去寻找相关信息,再汇总出答案。这个过程有可能不靠谱,大模型自己寻找出他自己认为是对的信息,可能是错的,所以做出的答案,就是错的。
于是改成,让程序找出相关信息,再给大模型汇总。程序员编程后找出的信息肯定是对的,大模型汇总的结果,以大模型的能力,结果也是对的。

但这种方式有问题,就是会多次调用大模型,大模型通常是部署在远端的,就会产生性能问题。所以在大模型内部,让大模型自己去调用工具。

要大模型自己调用工具,就得靠系统提示词了,当然系统提示词不用自己写,将在n8n中流程导出json,再向deepseek提问,就可以生成提示词了。

调用的工具不止一个,就会产生协同问题,如何将a工具产生的结果作为参数调用b工具,这里的做法就是使用few shot,意思是在提示词中要要提供例子,如调用工具产生结果r1,{"input": r1}以这个参数调用工具b,这样工具b内部通过fromAI("input")就能获取到input参数的值了。

这个过程中大模型实际只做汇总,利用了大模型的长处,避免了大模型的短处。

程序去找信息,如果是从数据库中找出相关文档的方式,就是通常据说的RAG。

但在做RAG的过程中,难免碰到需求,如:用户输入关键词,直播回答某些预先答案。

象这种的实现方式,如果采用将答案弄成文档,再去让程序找到相关文档,再让大模型汇总这种方式也是不可靠。因为找到文档也是靠概率。
因此需使用新的方式,这种方式就是让程序调用工具,得出结果作为相关信息,再让大模型做汇总。这个过程出来的结果就是可靠的了。

为什么大模型会去调用工具呢

如果工具处理的方式不够,需要思考,那就需要加入大模型进去,进行协助,这种工具就是智能体了。整个架构就是所谓的多智能体的方式了。

所以总体的思路,就是让大模型做最擅长的活,汇总,信息提供由外部去做。整个结果就是可控的了。

posted @ 2025-12-13 01:28 paulwong 阅读(31) | 评论 (0)编辑 收藏

添加Milvus MCP

克隆源码:

git clone https://github.com/zilliztech/mcp-server-milvus.git

添加Dockerfile

FROM python:3.12-slim

WORKDIR /app

# 安装系统依赖
RUN apt-get update && apt-get install -y \
    curl \
    git \
    build-essential \
    && rm -rf /var/lib/apt/lists/*

# 使用 pip 安装 uv(替代 curl 方式)
#RUN pip install --no-cache-dir uv -i https://pypi.tuna.tsinghua.edu.cn/simple 
RUN curl -LsSf https://astral.sh/uv/install.sh | sh

# 或者使用更可靠的方式
# RUN pip install --no-cache-dir uv==0.3.0

# 复制依赖文件
COPY pyproject.toml uv.lock README.md ./

# 为 uv 设置镜像源环境变量
ENV UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

# 使用 uv 安装依赖
# 3. (关键)在构建时安装Python依赖到系统,而非虚拟环境
RUN pip install uv && \
    uv pip install --system -r pyproject.toml
# RUN uv pip install --system -r pyproject.toml -i https://pypi.tuna.tsinghua.edu.cn/simple 

# 复制源代码
COPY src/ ./src/

# 暴露端口
EXPOSE 8000

CMD ["uv", "run", "src/mcp_server_milvus/server.py", "--sse", "--milvus-uri", "http://milvus:19530", "--port", "8000"]

docker-compose.yaml

services:

  mcp-milvus-server:
    build: .
    container_name: mcp-milvus-server
    extra_hosts:
      - "host.docker.internal:host-gateway"
    environment:
      - MILVUS_URI=http://host.docker.internal:19530
      # - MILVUS_TOKEN=http://localhost:19530
      # - MILVUS_DB=http://localhost:19530
    ports:
      - "8012:8000"
    volumes:
      - ./src:/app/src
    # depends_on:
    #   milvus:
    #     condition: service_healthy
    command: uv run src/mcp_server_milvus/server.py --sse --milvus-uri http://milvus:19530 --port 8000
    networks:
      - n8n_network

volumes:
  milvus_data:
  milvus_conf:
  etcd_data:
  minio_data:

networks:
  n8n_network:
    external: true

login-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose exec -it mcp-milvus-server /bin/bash


logs-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose logs -f 

start-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose up -d
docker compose logs -f

shutdown-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH/mcp-server-milvus

docker compose down

restart-mcp-milvus-server.sh

BIN_PATH=$(cd `dirname $0`; pwd)
cd $BIN_PATH

pwd
./shutdown-mcp-milvus-server.sh
./start-mcp-milvus-server.sh


posted @ 2025-12-08 01:49 paulwong 阅读(28) | 评论 (0)编辑 收藏

MCP资源

什么是mcp?
https://code.visualstudio.com/docs/copilot/customization/mcp-servers#_add-an-mcp-server-to-your-user-settings

mcp server大全
https://github.com/modelcontextprotocol/servers?tab=readme-ov-file

常用mcp server:
https://github.com/modelcontextprotocol/servers-archived/tree/main/src/postgres

mcp 官网:
https://modelcontextprotocol.io/docs/develop/build-server


posted @ 2025-12-07 21:29 paulwong 阅读(31) | 评论 (0)编辑 收藏

AI 模型广场

如果想在某些垂直领域找比较好的模型, 可到下面这个网址查看:

https://ai.gitee.com/serverless-api

posted @ 2025-11-23 09:53 paulwong 阅读(14) | 评论 (0)编辑 收藏

Open WebUI + N8N 流式输出

Integrating n8n with Open WebUI: Building advanced AI chatbots and workflows
https://www.pondhouse-data.com/blog/integrating-n8n-with-open-webui

n8nchatui
https://n8nchatui.com/docs
https://www.youtube.com/watch?v=_dmrr7kWRI0

open-webui function:
https://openwebui.com/f/webfox/n8n_streaming

Complete Guide to n8n Chat Streaming Setup
https://sudhanshu-sharma.notion.site/Complete-Guide-to-n8n-Chat-Streaming-Setup-24ed62104585806a8909d1b662209af3

posted @ 2025-11-08 09:03 paulwong 阅读(22) | 评论 (0)编辑 收藏

微调案例

我如何用 Prompt 工程将大模型调教成风控专家
https://my.oschina.net/u/4090830/blog/18690981


posted @ 2025-09-10 13:25 paulwong 阅读(16) | 评论 (0)编辑 收藏

RAG提高召回率秘笈

传统的搜索是全文搜索, 即用户提供关键字, 系统将此关键字去数据库中的文本查找, 看文本是否含此关键字, 如有则返回.
这种有个缺点, 如果提供的是关键字的同义词, 则无法搜索了.

于是最新的人工智能技术能解决这个问题, 即只提供同义词之类的也能找出来.

为什么能查找出来呢, 系统将待搜索的文本转成向量, 再将关键词转成向量, 查找欧氏距离或余弦相似度最近的那组向量, 再将此对应的文本返回.

由于文本长度太长, 通常是将文本切割成文本块, 再逐个存储. 这样会导致返回的文本有缺失.

于是产生不同的存储策略, 将文本的属性作为元数据保存了下来, 如果精准的知道其属性, 则可以直接查属性而找到文本.

也可以将此文本生成一段摘要, 也作为元数据保存下来, 关键字先和摘要匹配, 如果相近即返回.

也可以将文本转成全文索引的格式保存下来, 再以文本是否含此关键字进行搜索, 如有则返回.

这样返回的文本多了, 搜索的准确度自然就提高了.

这里推荐Milvus数据库, 将以上机制都放在服务器端, 用户只需调包即可实现, 大大简化的编程.

代码实现:

https://milvus.io/docs/zh-hant/full_text_search_with_langchain.md


书本代码:
https://github.com/huangjia2019/rag-in-action/blob/master/04-向量存储-VectorDB/Milvus/create_milvus_db.py#L100

https://github.com/Tylersuard/EnterpriseRAG/blob/main/Ch03/upload_sql_records_to_ai_search.py#L10

https://github.com/tomasonjo/kg-rag/blob/main/README.md

posted @ 2025-09-06 15:47 paulwong 阅读(115) | 评论 (0)编辑 收藏

RAG优化

老王AIGC
https://mp.weixin.qq.com/mp/appmsgalbum?action=getalbum&__biz=MzkzMzc2MjAwOQ==&scene=24&album_id=3853666856078622721&count=3#wechat_redirect


posted @ 2025-08-26 16:57 paulwong 阅读(26) | 评论 (0)编辑 收藏

docker镜像加速


https://github.com/DaoCloud/public-image-mirror

posted @ 2025-08-26 09:59 paulwong 阅读(20) | 评论 (0)编辑 收藏

支持 A 股、港股!AI 投资炒股「智能体」开源,太绝了。

它部署了多个专业的 AI 大模型智能体,每一个智能体对应交易公司的一个角色。比如有的智能体是基本面分析师、有的是情绪分析师、有的是技术分析师,还有交易员、风险管理员等等。让这些角色的AI智能体在一起叽叽喳喳讨论,最终确定最优的策略。给出买入或者卖出的决策。

https://mp.weixin.qq.com/s/mu1eF1l5ung-siVcUrEsTQ


合集

posted @ 2025-07-11 19:06 paulwong 阅读(75) | 评论 (0)编辑 收藏

保险核保系统设计

回答用户的问题, 如“醉驾能否赔偿”时, 首先去条款库中匹配是否对得上的条款, 如有直接返回.
上面如果不中, 则走llm回答.
提取关键字, 用一关键字列表, 逐个对照, 如有则返回关键字, 没有则返回默认的车险关键字
拿着此关键字去知识图谱搜索出一堆条款
构造大模型输入的提示词, 即角色+条款列表+问题+请回答, 输入到大模型, 让大模型回答
检查回答是否合规, 如是否有免责字样或没有条款列表, 如不规合则直接返回, “请联系销售代表”字样
如合规, 则提取回答后面的字样作为答案返回
@import url(/css/cuteeditor.css);

posted @ 2025-07-02 00:43 paulwong 阅读(40) | 评论 (0)编辑 收藏

debian安装python+替换为清华源

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak

sudo vi /etc/apt/sources.list.d/debian.sources

添加如下内容:
Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian/
Suites: bookworm bookworm-updates bookworm-backports
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: https://mirrors.tuna.tsinghua.edu.cn/debian-security/
Suites: bookworm-security
Components: main contrib non-free non-free-firmware
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

更新所有包
sudo apt update

安装python
sudo apt-get install python3

sudo apt-get install python3-pip

命令支持短写
sudo apt install python-is-python3

安装miniconda
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-py310_25.3.1-1-Linux-x86_64.sh

bash Miniconda3-py310_25.3.1-1-Linux-x86_64.sh
conda config --set show_channel_urls yes

cat > ~/.condarc <<EOF
channels:
- defaults
show_channel_urls: true
default_channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
EOF

清除缓存
conda clean -i

conda --version
conda info # 查看渠道是否显示为清华源




posted @ 2025-06-23 11:32 paulwong 阅读(91) | 评论 (0)编辑 收藏

最全 Docker 神器集结,让你的服务器瞬间起飞!

https://mp.weixin.qq.com/s/gtyMdmCqBY7LfdBGUBldSA

posted @ 2025-06-21 23:01 paulwong 阅读(42) | 评论 (0)编辑 收藏

百炼大模型支持深度思考


https://help.aliyun.com/zh/model-studio/deep-thinking#1f5ad51894bvi

posted @ 2025-06-18 23:56 paulwong 阅读(32) | 评论 (0)编辑 收藏

以非root用户运行docker

sudo useradd -m paul # 创建用户并自动建立家目录
sudo passwd paul # 设置用户密码(需输入两次确认)
sudo usermod -aG wheel paul # CentOS/RHEL
[root@dev69 ~]$ groupadd docker
[root@dev69 ~]$ usermod -aG docker $USER
[root@dev69 ~]$ reboot
[paul@dev69 ~]$ docker run hello-world

posted @ 2025-06-13 16:47 paulwong 阅读(36) | 评论 (0)编辑 收藏

创建数据集的资源


AI 数据集生成和模型微调框架 Distilabel 入门指南:基本概念、安装与快速开始
https://zhuanlan.zhihu.com/p/25766406373

使用Llama3和distilabel构建微调数据
https://huggingface.co/blog/dvilasuero/synthetic-data-with-llama3-distilabel

posted @ 2025-05-18 08:01 paulwong 阅读(39) | 评论 (0)编辑 收藏

强化学习资源

蘑菇书EasyRL
李宏毅老师的《深度强化学习》是强化学习领域经典的中文视频之一。李老师幽默风趣的上课风格让晦涩难懂的强化学习理论变得轻松易懂,他会通过很多有趣的例子来讲解强化学习理论。比如老师经常会用玩 Atari 游戏的例子来讲解强化学习算法。此外,为了教程的完整性,我们整理了周博磊老师的《强化学习纲要》、李科浇老师的《世界冠军带你从零实践强化学习》以及多个强化学习的经典资料作为补充。对于想入门强化学习又想看中文讲解的人来说绝对是非常推荐的。

本教程也称为“蘑菇书”,寓意是希望此书能够为读者注入活力,让读者“吃”下这本蘑菇之后,能够饶有兴致地探索强化学习,像马里奥那样愈加强大,继而在人工智能领域觅得意外的收获。
https://github.com/datawhalechina/easy-rl?tab=readme-ov-file


posted @ 2025-04-30 14:15 paulwong 阅读(46) | 评论 (0)编辑 收藏

足球数据资源

足球基础数据
https://www.nami.com/details/4nw10i0tela68lq#interface

足球统计数据
https://www.nami.com/details/7xwk3iqtv3s9rk6#interface

足球统计数据
https://www.nami.com/details/7xwk3iqtv3s9rk6#interface

足球高阶数据
https://www.nami.com/details/g5wvvikteeixwzd#interface

指数数据
https://www.nami.com/details/o6w9kipt4yi78k3#interface

足球资料库数据
https://www.nami.com/details/7j8gxi0to7inrql#interface

Marz火星数据(体育)
https://www.kancloud.cn/marz/marz-sport/3098904



posted @ 2025-04-24 14:56 paulwong 阅读(86) | 评论 (0)编辑 收藏

ai预测足球资源

基于机器学习的2022世界杯预测实战
https://www.showmeai.tech/article-detail/400

AI 竞彩赛事 预测工具
https://www.mysports.ai/cn

posted @ 2025-04-19 01:07 paulwong 阅读(56) | 评论 (0)编辑 收藏

微调训练的数据集

使用trl库做微调时, 对数据集的要求是:

如果是多轮对话场景:
jsonl 文件,且需符合以下要求:
1.每行是一个独立的 JSON 对象;
2 每个对象须包含一个键名为 messages 的数组,数组不能为空;
3.messages 中每个元素必须包含 role 和 content 两个字段:
4.role 只能是 system,user 或 assisiant;
5.如果有 system 角色消息, 需在数组首位;
6.第一条非 system 消息必须是 user 角色;
7.user 和 assisiant 角色的消息应当交替、成对出现,不少于1对;

如果是指令微调场景:
jsonl 文件,且需符合以下要求:
1.每行是一个独立的 JSON 对象;
2 每个对象须包含且只能包含一个键名为 text 的键值对,值不能为空;

posted @ 2025-03-21 21:52 paulwong 阅读(87) | 评论 (0)编辑 收藏

大模型训练的几个阶段

大模型开发出来后, 一般要经过以下几个阶段的训练:

预训练(Pre-Trained)

单纯提供文本: {"text":"..."}
训练模型由第一个文字开始, 预测后面的文字, 直到结束.
这种模型只会做完成文本的任务

监督微调(Supervised Fine Turning)

为了使模型能完成根据指令完成回答, 而不是随机生成回答
提供的文本: {"instruction":"...", "output":"..."}

高效参数微调(Parameter Efficient Fine Turning)

只调整部分参数, 具体实现方法有LoRA

参考:
https://github.com/huggingface/smol-course/blob/main/1_instruction_tuning/notebooks/sft_finetuning_example.ipynb



posted @ 2025-03-18 13:14 paulwong 阅读(88) | 评论 (0)编辑 收藏

python资源

python
https://www.w3schools.com/python/

https://www.runoob.com/python/python-basic-syntax.html

廖雪峰的官方网站
https://liaoxuefeng.com/books/python/index.html


posted @ 2025-03-16 20:54 paulwong 阅读(54) | 评论 (0)编辑 收藏