2026-01-05

01月05日

一、今日完成情况

  • 预定-梳理清楚自己的工作部分,并且导出相应的实行方法
  • 梳理一下工位需要的装饰品,并且在淘宝下单(包括但不限于工位遮光挡板)–购买了遮光板、把镜子、餐巾纸、日历等生活用品都搬过来了。
  • Gemini接口实现一下申请,看看可以不可以赠送额度
  • 完成一篇文章,关于上岸和妻子之间的共同特点(昨晚失眠的时候顿悟的)[[2026-01-05 上岸和嫁人]]
  • Java学习一下基本的语法,包括循环和数据类型的定义。—50% 看了一个小项目
  • 梳理一下MCP的Python语法学习上手路径 –完成项目一
  • 完成VPS自动连接,并且简化连接路径。备注:现在我的游戏本虽然是局域网,可是我链接起来却和公网IP一样了,是一个个人服务器了。

二、今日感悟

  • 核心业务数据​:
    • 就是今日完成情况,不多赘述
  • ​今日工作总结:​
    • 关于自己实验室数据标注部分,存在一点小问题,就是我的拖延症打算让子弹飞一会,让其他师兄先标注着,然后我可以照猫画虎,使用他们的方法快速完成。再者,就是工作量不算多,可以做的慢一点,不然老师就会布置新任务。
    • Gemini接口是申请了,而且有很多额度,但是这个AI平台我不会用,真是太浪费了。
    • 工位重新装修了一下,就是少了点立体感,下面台面小桌子到了,我会放上小摆件,让其更加井然有序的。
    • MCP服务遇到一个问题,就是我安装了Claude Desktop的时候,需要验证国外手机号,这是一个小问题,不过我用英国手机验证一下试一试看看行不行,不行的话我看看有虚拟手机号的方法的,薛薛和我说过的。
    • VPS自动连接成功了,这是让人兴奋的,这样就把台式机当做可以传输文件的服务器用了,MacBook和游戏本之间传输文件再也不用麻烦的QQ传来传去了。
  • ​明日工作计划:
    • Claude Desktop看看手机号验证是否可以顺利。
    • MCP第二部分尝试,试一试,这不仅仅是导师工作方面的任务,也是很好的提高生产力的手段。看来我的专业方向是选对了,导师让我们学的,刚刚好是我也比较感兴趣的内容,老师不说,那方面的内容我自己也会去尝试了解的。
    • Java跑通一个小项目吧,我就在看项目源码过程当中,学习架构。
    • 一篇文章码字,不过目前还没有想好主题,可以是AI时代对于我们学习内容和教育内容的冲击。
  • ​今日学习成长:​
    • 我发现自己在失眠的时候,是思维最活跃,战斗力最强的。怎么说,就是我会不断的在大脑当中复盘做过的事情,说过的话(近期),从而快速迭代找到当时情境下自己处理问题亟待优化的地方。并且在重构过去的回忆的时候,会发现之前没有get到的点,相当于,我可以对自己获取到的“数据”进行多轮的训练,从而达到最大的效率。从这个意义上,对我这种脑力劳动从业者来说,失眠是坏事,也是好事。只不过失眠能够系统性思考一个问题还是比较困难的,因此,导致思考的东西琐碎,深度有待提高。
    • 我在想学习一门语言,Java语言,是不是直接找一个小项目跑一下,然后自己梳理项目的架构效率高一点。刚才让AI生成了一个项目,就是简单的九宫格,我当时写了一星期,做过毕业设计游戏的我,看这个代码的架构就是三层,核心逻辑层,按键中断层,最后就是刷新渲染层,接着把架构之间的关系,连接部分给搞清楚,最后就只需要把内部的小逻辑搞清楚,分而划之即可。

三、备注

四、实验室标注具体工作

1、我的部分(归属于)

归属于”(Belonging to / Attributed to),通常不是指简单的物理位置,而是指数据的所有权、来源脉络、类别划分以及法律边界

A. 法律与产权层面(Data Ownership & Copyright)

  • 含义: 这条数据在法律上是谁的资产?谁拥有版权?
  • 关键点: 决定了你是否有权收集和使用它。
  • 语境: “这批图像数据归属于Getty Images,未经授权不能爬取。”

B. 来源与主体层面(Data Provenance & Subject)

  • 含义: 这条数据是由谁产生的?描述的是谁的行为?
  • 关键点: 涉及隐私保护(GDPR/PIPL)和数据溯源。
  • 语境: “这条医疗记录归属于患者张三(即使存储在医院数据库中)。”

C. 逻辑与类别层面(Class/Label Membership)

  • 含义: 在监督学习中,这条数据被标记为哪个类别?
  • 关键点: Ground Truth(真值)的确定。
  • 语境: “在情感分析中,这句话归属于‘负面评论’类别。”

2、API调用批量查找数据

3、知识图谱算法链接

五、Gemini API初调用

from google import genai  
  
# 直接在代码中设置 API key(替换成你的真实 key)  
client = genai.Client(api_key="AIzaSyAkhD12ZjU7h2t9EfF9B_6a2hCElMXClWw")  
  
# 使用当前有效的模型名  
response = client.models.generate_content(  
    model="gemini-2.5-flash",  # 推荐这个:当前主流快速模型  
    # 或者试试 "gemini-2.0-flash" 或 "gemini-3-flash-preview"(如果想用最新 preview)  
    contents="Explain how AI works in a few words"  
)  
  
print(response.text)
Pasted image 20260105114100

没啥问题,可以导出,现在需要学习的就是各种Gemini的API python如何调用,还有相关的插件如何使用,使用是否顺利。

六、VPS公钥加密安全性提高

ssh-keygen -t ed25519 -C "2742889857@qq.com"  # 回车保存默认位置,可设置 passphrase

切换到 SSH 密钥登录(取代密码)

  • 在 MacBook 上生成密钥对
Pasted image 20260105143609

将公钥复制到 VPS 和游戏本(都需要访问游戏本的 SSH): 先从 MacBook 复制到 VPS:

ssh-copy-id -i ~/.ssh/id_ed25519.pub -o Port=22022 tunnel@117.72.201.198
Pasted image 20260105144117

登录游戏本,也就是在VPS服务器端,连接我的游戏本2222端口,输入密码实现连接。
Pasted image 20260105144954

把macbook的公钥通过服务器复制到游戏本当中:

Pasted image 20260105145431

然后使用这个指令就可以直接登录,而不是输入密码了:

ssh -J tunnel@117.72.201.198:22022 kipleytaylor@117.72.201.198 -p 2222
Pasted image 20260105145805

如何更加优雅的登录呢,现在使用其他指令操作:

nano ~/.ssh/config
Pasted image 20260105150436
# VPS 中继主机
Host vps
    HostName 117.72.201.198
    User tunnel
    Port 22022
    # IdentityFile ~/.ssh/id_ed25519   # 如果用了特定密钥可加这行

# 游戏本(通过 VPS 中继)
Host gamepc
    User kipleytaylor
    Port 2222
    ProxyJump vps
    # HostName 直接用 localhost,因为第二跳在 VPS 本机
    HostName 127.0.0.1
Pasted image 20260105150516

设置好之后,直接使用ssh gamepc连接我的游戏本,相当于gamepc就是一个IP地址了,可以直接连接。

	ssh gamepc
Pasted image 20260105150701

可以直接把MacBook文发送到游戏本上:

scp -r ~/Desktop/2026-01-03.pdf gamepc:~/Desktop
Pasted image 20260105151320

见证奇迹的时候!!!

真的传过去了,在游戏本突然出现了我传过来的文件,太开心了。
pic

当然,可以直接从游戏本把图片传过来,方才的图片是我传过来的,不是QQ发过来的。

Pasted image 20260105151639

没问题,直接过来了。

OK,现在我在游戏本上配置了自动连接服务器VPS服务,也就是游戏本一旦连接上互联网,就会链接到服务器,而且不需要手动密码验证了,从而实现,只要我的游戏本在开机并且联网状态,我的mac就可以直接连接。

现在重启游戏本作为尝试。

现在游戏本只要出于打开状态,就可以直接被MacBook连接,太方便啦!!!

七、MCP (Model Context Protocol)初探索

这是一个由 Anthropic 推出的开放协议

  • Host (宿主): 如 Claude Desktop 或 IDE。

  • Client (客户端): 负责协议翻译(通常集成在 Host 中)。

  • Server (服务器): 这就是我们要写的 Python 代码,它暴露工具(Tools)给 AI。

这是我们使用MCP时候的架构,这个架构就是这三部分,宿主就相当于网页,是用户层面交互的空壳,这个宿主里面有客户端负责接受和发送信息。

服务端负责的事用户的指令的逻辑控制,这是我们探索的重点。

1、第一阶段:编写第一个 MCP Server

第一阶段(基础)达成清单:

  • Python 环境配置完成(venv + uv)。
  • 编写了第一个 FastMCP 服务器。
  • 通过 mcp dev 成功启动。
  • 在 Inspector 网页中手动调用工具并看到结果。

我们使用 FastMCP 装饰器,它能自动处理复杂的协议握手。

from mcp.server.fastmcp import FastMCP
from datetime import datetime

# 1. 初始化 FastMCP 实例,名字叫 "TimeServer"
mcp = FastMCP("TimeServer")

# 2. 定义一个 Tool(工具)
# 这里的文档字符串 (Docstring) 非常重要,AI 会根据它来判断何时调用此工具
@mcp.tool()
def get_current_time() -> str:
    """获取当前的系统时间。"""
    return f"当前时间是: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}"

if __name__ == "__main__":
    # 3. 运行服务器
    mcp.run()

终端会启动一个本地的 Web 界面(通常是 http://localhost:3000)

Pasted image 20260105201914

在刚才的代码中,你接触到了 MCP 的三个核心支柱之一:

  • Tools (工具): * 定义: 允许 AI 执行操作 的函数。
    • 特点: 它们有副作用(比如读取文件、查询 API、计算数值)。
    • 代码体现: @mcp.tool()
    • 逻辑: 当 AI 觉得“我需要知道现在的时间”时,它会向你的 Server 发送请求,执行这个 Python 函数。

AI如何决定是否要调度时间的呢?

  • 在刚才的网页(Inspector)里,你充当了“调度员”。但在实际应用中,比如在 Claude Desktop 软件里,AI 会通过你写的**描述(Docstring)**来理解这个工具的用途。
  • 当你问 Claude:“现在几点了?”
    1. Claude 会扫描所有可用的工具。
    2. 它发现 get_current_time 的描述正好匹配你的需求。
    3. Claude 会自动生成一条调用指令,发送给你的 Python 脚本。
    4. 你的脚本运行并返回结果。
    5. Claude 拿到结果后,再用自然语言回复你。

下面即将使用第二个进阶尝试,可是进阶尝试需要登录Claude Desktop,所以存在一些问题,因为Claude Desktop是所有AI相关的公司当中,对于账号和地区要求最高的,因此,需要验证手机号,我需要想想办法,一个稳定的代理和一个没问题的谷歌账号还不够,要求怪多的。


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 kipleyarch@gmail.com
Obsidian