跳到主要内容

97 篇博文 含有标签「python」

查看所有标签

使用codespace 免费快速安全的体验 Clawdbot

· 阅读需 4 分钟

codespace 介绍

codespace 是托管在 github 上的云开发环境。每个 codespace 都由 GitHub 托管在虚拟机上运行的 Docker 容器中,可以理解为 github 为开发者提供的云端虚拟机。

ClawdBot(后更名为 MoltBot,再之后又更名为 openclaw) 是最近非常火的 AI 智能助理项目,但是将其部署在自己的工作机还有些危险的,因为权限太大了。为此我们可以将 openclaw 部署在闲置的 Mac mini 或者 vps 中。

有了 github codespace, 我们可以不必购买服务器就可以体验一下 openclaw 的神奇能力

使用 mitmproxy来窥探 claude code 的系统提示词

· 阅读需 3 分钟

最近使用 claude code 过程中,想要查看一下具体的请求数据,学习一下它的提示词,但是 claude code 是个在 shell 中运行的工具,不太好查看,这里提供一种使用 mitmproxy 来抓包的方法,类似的还有使用 wireshark 等。

为什么大厂都用 DFA 做敏感词过滤?Python 带你手撸一个!

· 阅读需 11 分钟

敏感词过滤,这个看起来“老掉牙”的功能,其实藏着不少算法的门道。
你可能不知道,大厂评论系统、弹幕平台、甚至聊天机器人背后,都在悄悄跑着一台“小型自动机”——DFA。

今天我们就用 Python,带你从最简单的思路出发,一步步搞懂:
为什么大家都爱用 DFA 算法 来做敏感词过滤。

Python 玩转 MCP:在工具函数中获取请求 Headers 的正确姿势

· 阅读需 3 分钟

一、问题出现:工具函数里怎么拿请求信息?

假设你用 FastMCP 写了一个最简单的工具函数:

from mcp.server.fastmcp import FastMCP

mcp = FastMCP("My Server")

@mcp.tool(name="打招呼",description="简单的打招呼")
async def hello() -> str:
return "hello world"

这个函数很简单,运行也没问题。
但是一旦你想要在函数里获取请求头、用户信息、IP、Token 等信息(一般用于一些权限校验,数据打点等操作),就会发现:

函数没有直接的 Request 对象!

这时就要用到关键角色 —— ctx: Context

一行代码让你的 MCP 支持多机部署

· 阅读需 11 分钟

一、SSE 时代的“单机魔咒”

如果你用 Python 开发过 MCP 服务,大概率遇到过这样的场景:服务在本地跑得好好的,一到生产环境就各种幺蛾子。特别是当你想要多机部署时,发现负载均衡器怎么配置都不对劲。

问题根源:SSE 的“粘性会话”魔咒

传统的 SSE(Server-Sent Events)模式有个致命缺陷:需要维护长连接和会话状态。这意味着:

  1. 同一个客户端的请求必须始终路由到同一台服务器
  2. 负载均衡器必须配置复杂的“会话亲和性”规则
  3. 任何一台服务器宕机,正在处理的会话就彻底凉凉

再也不用怕 LLM 返回脏 JSON:用 json_repair 一行代码自动修复!

· 阅读需 5 分钟

为什么大模型生成的 JSON 需要修复

在使用大语言模型(LLM,例如 GPT 系列)时,我们经常要求模型返回结构化的 JSON 数据,以便程序进一步解析和处理。然而,现实中模型输出的 JSON 往往“不够干净”——可能会在前后多出说明文字、注释、甚至中途缺少引号或逗号,从而导致 json.loads() 报错。

告别繁琐解析:用 Pydantic 的 model_validate_json 优雅处理 JSON 数据

· 阅读需 6 分钟

前言

在使用 Pydantic 构建 Python 项目时,我们经常需要将 JSON 数据转换为模型实例。传统的方式通常是先用 json.loads() 将字符串解析成字典,再通过 Model(**data) 初始化对象。
而从 Pydantic v2 开始,引入了一个更高效、更简洁的新方法:model_validate_json()
本文将带你深入理解它的用法、优势、与传统方式的区别,以及如何优雅地处理异常。

使用agent-chat-ui 调试 langgraph

· 阅读需 7 分钟

在之前的文章中,使用langgraph 创建的agent,在进行调试时,都是写 python 代码来自己调用,今天介绍一种更加方便的在线调试langgraph 应用的方案,使用 agent-chat-ui 进行调试。

Agent Chat UI 是一个 Next.js 应用程序,它可以通过聊天界面使用 messages 键与任何 LangGraph 服务器进行聊天。

agent-chat-ui 项目地址 https://github.com/langchain-ai/agent-chat-ui

初始化项目,安装依赖

uv init langgraphui --python 3.11
cd langgraphui
uv sync
uv add langgraph-cli[inmem]

还在自己开发代码执行沙箱吗?试试langchain 官方的这个沙箱吧

· 阅读需 6 分钟

在大模型agent 开发过程中,经常会遇到需要代码执行的操作,以往我们会单独创建一个沙箱,对外暴露一个web 端口,接受用户的代码,将执行结果返回给调用端,这种方式是一种比较安全的方式,但是需要开发沙箱服务,且还要返回符合大模型规范的内容。

langchain 团队近期开源了一个沙箱服务,专门用于执行python 代码,且这个项目和langchain 生态相结合,可以很方便的开发出代码执行工具。

项目地址 https://github.com/langchain-ai/langchain-sandbox

让我们来看一下它的使用吧。

如何使用uv更新项目依赖

· 阅读需 4 分钟

使用uv 管理的python项目,开发了一段时间以后,有很多第三方的依赖有更新了,这时需要更新一下,本文介绍一下如何使用uv 来更新项目依赖。

先安装几个包的老版本

uv add "fastapi==0.114.2"
uv add "httpx<=0.28.0"

此时 pyproject.toml 中的配置信息为

[project]
name = "version-demo"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.12"
dependencies = [
"fastapi==0.114.2",
"httpx<=0.28.0",
]

[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"