摘要
Neo 这类 AI 原生浏览器展示了一个重要趋势:AI 从“外挂工具”变成系统级基础设施,深度嵌入浏览、写作、阅读等场景。本文从开发者视角拆解其核心能力(本地推理、上下文记忆、文档处理、内联生成等),并基于兼容 OpenAI 的 API(以薛定猫 AI 为例)给出一份可运行的 Python 实战代码,帮助你在自己的应用里复刻类似的 AI 工作流。
一、背景介绍:从“AI 插件”到“AI 原生浏览器”
视频中的 Neo/Neil 浏览器,本质上不是“多了个聊天窗口”的普通浏览器,而是一个围绕 AI 重新设计的浏览器内核 + 工作流系统,核心特征包括:
- 隐私优先 / 本地执行:聊天记录、浏览历史、AI 建议尽可能在本地处理,最小化数据外发。
- 系统级集成:AI 能在侧边栏、输入框、Notepad、Tab 管理等多个 UI 层面内联触发。
- 上下文记忆与个性化:基于你的使用行为构建长期偏好(写作风格、常用任务、阅读兴趣等)。
- 多模态能力:文档解析、代码辅助、图片生成在同一工作流中打通。
对开发者而言,这类产品的技术价值不在 UI,而在于背后的通用模式:“上下文管理 + 本地/云端模型推理 + 安全控制 + 场景化触发”。
二、核心原理拆解:Neo 类 AI 浏览器在做什么?
结合字幕内容,可以抽象出几个关键能力模块,完全可以在自己的系统中复用。
2.1 本地优先与隐私控制
视频多次强调:
- 所有内容“stay on your device”
- 用户可精细控制“Neo 记住或忘记什么”
- 内建安全能力(Norton 级别的钓鱼 / 恶意链接拦截)
从架构视角看,这是典型的:
- 本地向量索引 / 偏好存储:在本地数据库(SQLite / DuckDB / 文件系统)存用户长期偏好、向量检索索引。
- 云端大模型推理最小暴露:只发送经过脱敏 & 截断的必要上下文。
- 安全过滤前置:URL 打开前由安全模块先做一次分类/过滤(可用专用安全 API 或自训练分类模型)。
2.2 上下文与记忆机制
字幕中多处体现记忆与个性化能力:
- 记住“我的写作风格”
- 根据使用行为推荐个性化内容 feed
- 通过历史使用积累更多上下文
落到实现,大致是两层记忆:
- 静态偏好:写作语气、语言、专业领域;
- 动态行为:访问话题、常用 snippet 模板、常见任务(比如“帮我写邮件”)。
常见实现方式:
- 将重要片段(模型判定/人工标记)写入本地持久化存储;
- 触发请求前,根据当前任务检索相关记忆,拼接到 prompt 中;
- 提供“遗忘”开关(删除指定记忆条目)。
2.3 文档处理与多模态生成
视频中展示了:
- 上传大体量文档(spreadsheets、长文档),在浏览器中直接解析与重写;
- 生成图片(如“sunset”),并统一管理到 image gallery;
- 对邮件 / Notepad 内文本进行“内联 AI 生成”:续写、解释、改写。
技术上可以拆成几个子能力:
- 上传 → 抽取文本(PDF/Doc/Excel)→ 切分 chunk → 嵌入向量 → 本地索引。
- 用户发起“总结 / 重写 / 校对”,对照索引检索相关 chunk,组合上下文交给大模型。
- 文本模型负责指令理解、规划;
- 图片模型负责生成图片(或调用统一的多模态大模型)。
三、实战演示:用薛定猫 AI 搭一套“浏览器内 AI 工作流”原型
下面用 Python + 薛定猫 AI(xuedingmao.com)示范如何实现一个简化版的“AI 写作助手 + 文档总结 + 图片生成”服务逻辑。你可以把它嵌入到自己的浏览器插件、Electron 客户端或 Web 应用里。
说明:
- 平台地址兼容 OpenAI SDK:只需改 base_url 和 api_key;
- 模型统一使用文中约定的 claude-sonnet-4-6;
- 请在环境变量中配置 XUEDINGMAO_API_KEY。
"""
示例:基于薛定猫 AI 搭建一个简化版“AI 原生浏览器助手”服务
功能:
1. 维护用户写作风格偏好(长期记忆)
2. 基于上传文档做摘要 / 改写(RAG 简化版)
3. 生成配图(如文章封面图)
4. 提供一个统一的 `ai_assistant` 入口函数,方便在浏览器插件或 Web App 中调用
"""
import os
import json
from typing import List, Dict, Literal
from openai import OpenAI
# ——————–
# 一、基础配置:对接薛定猫 AI(OpenAI 兼容)
# ——————–
# 从环境变量读取 API Key,避免硬编码
XUEDINGMAO_API_KEY = os.getenv("XUEDINGMAO_API_KEY")
if not XUEDINGMAO_API_KEY:
raise RuntimeError("请先在环境变量中设置 XUEDINGMAO_API_KEY")
client = OpenAI(
api_key=XUEDINGMAO_API_KEY,
base_url="https://xuedingmao.com/v1", # 薛定猫 AI 的兼容 OpenAI API 地址
)
DEFAULT_MODEL = "claude-sonnet-4-6"
# ——————–
# 二、简单的“本地记忆”实现(写作风格)
# 实际工程建议使用 SQLite/向量库,这里用 JSON 文件做演示
# ——————–
MEMORY_FILE = "user_style_memory.json"
def load_user_style(user_id: str) –> str:
"""加载用户写作风格偏好(长期记忆)"""
if not os.path.exists(MEMORY_FILE):
return ""
with open(MEMORY_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
return data.get(user_id, "")
def save_user_style(user_id: str, style_desc: str) –> None:
"""保存/更新用户写作风格偏好"""
data = {}
if os.path.exists(MEMORY_FILE):
with open(MEMORY_FILE, "r", encoding="utf-8") as f:
data = json.load(f)
data[user_id] = style_desc.strip()
with open(MEMORY_FILE, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
# ——————–
# 三、大模型调用封装
# ——————–
def chat_completion(
system_prompt: str,
user_prompt: str,
model: str = DEFAULT_MODEL,
) –> str:
"""封装一次标准的 ChatCompletion 调用"""
resp = client.chat.completions.create(
model=model,
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt},
],
temperature=0.3,
)
return resp.choices[0].message.content
# ——————–
# 四、核心能力 1:学习并固化“写作风格”
# ——————–
def infer_and_save_writing_style(
user_id: str,
sample_text: str,
) –> str:
"""
从用户提供的样例文本中归纳写作风格,并存入本地记忆。
"""
system_prompt = (
"你是一名写作风格分析助手,任务是从示例文本中总结出简洁的写作风格描述,"
"包含:语气(正式/口语/幽默等)、句式特征、常用表达、目标读者类型。"
"输出请使用简短中文段落,不超过 150 字。"
)
style_desc = chat_completion(system_prompt, sample_text)
save_user_style(user_id, style_desc)
return style_desc
# ——————–
# 五、核心能力 2:基于文档的总结 / 改写(简化 RAG)
# ——————–
def summarize_or_rewrite_document(
user_id: str,
document_text: str,
mode: Literal["summary", "rewrite"] = "summary",
extra_instruction: str = "",
) –> str:
"""
对上传文档做摘要或改写,自动注入用户写作风格记忆。
:param user_id: 用户 ID
:param document_text: 待处理的原文(可从浏览器上传的文件中抽取)
:param mode: "summary" 摘要, "rewrite" 改写
:param extra_instruction: 额外约束,例如“面向非技术读者”“控制在 500 字以内”等
"""
style_desc = load_user_style(user_id)
if mode == "summary":
task_desc = "对下面的文档做结构化摘要,列出要点和结论。"
else:
task_desc = "在保持核心信息不变的前提下,用更流畅、易读的方式改写下面的文档。"
system_prompt = (
f"你是一个文档智能助手,负责对长文本进行 { '摘要' if mode == 'summary' else '改写' }。\\n"
f"如果提供了用户写作风格,请尽量贴合:{style_desc or '无特定风格,可采用中性专业风格。'}\\n"
"输出使用 Markdown,使用小标题和条目列表增强可读性。"
)
user_prompt = (
f"{task_desc}\\n\\n"
f"【额外要求】{extra_instruction}\\n\\n"
"【文档内容】\\n"
f"{document_text}"
)
return chat_completion(system_prompt, user_prompt)
# ——————–
# 六、核心能力 3:生成文章配图(图片生成)
# ——————–
def generate_image(
prompt: str,
model: str = "claude-sonnet-4-6", # 某些平台文本模型也支持图像生成;如需专用图像模型可替换
size: str = "1024×1024",
) –> str:
"""
调用薛定猫 AI 的图像生成接口,返回图片 URL。
具体模型和字段需根据平台文档调整,这里演示兼容 OpenAI 的 images API 调用方式。
"""
# 注意:薛定猫 AI 具体是否提供 /images 端点需查看其文档。
# 若使用统一 chat 接口生成 base64,再自行保存,也是常见方案。
resp = client.images.generate(
model=model,
prompt=prompt,
size=size,
n=1,
)
# 兼容 OpenAI 格式:data[0].url
img_url = resp.data[0].url
return img_url
# ——————–
# 七、统一入口:模拟“浏览器内 AI 助手”的任务调度
# ——————–
def ai_assistant(
user_id: str,
intent: Literal["set_style", "doc_summary", "doc_rewrite", "gen_image"],
payload: Dict,
) –> Dict:
"""
模拟浏览器内的 AI 助手统一入口,根据意图路由到不同能力模块。
:param user_id: 用户 ID
:param intent: 任务类型
:param payload: 任务参数
:return: 标准化结果字典,方便前端统一处理
"""
if intent == "set_style":
sample_text = payload.get("sample_text", "")
style = infer_and_save_writing_style(user_id, sample_text)
return {
"type": "style_saved",
"style_description": style,
}
elif intent in ("doc_summary", "doc_rewrite"):
document_text = payload.get("document_text", "")
extra_instruction = payload.get("extra_instruction", "")
mode = "summary" if intent == "doc_summary" else "rewrite"
output = summarize_or_rewrite_document(
user_id=user_id,
document_text=document_text,
mode=mode,
extra_instruction=extra_instruction,
)
return {
"type": "doc_processed",
"mode": mode,
"result_markdown": output,
}
elif intent == "gen_image":
prompt = payload.get("prompt", "")
img_url = generate_image(prompt)
return {
"type": "image_generated",
"prompt": prompt,
"image_url": img_url,
}
else:
raise ValueError(f"未知 intent: {intent}")
# ——————–
# 八、示例运行(可直接执行本文件体验)
# ——————–
if __name__ == "__main__":
# 假设浏览器侧创建了一个 user_id
uid = "user_123"
# 1. 先“教”助手我的写作风格(可以粘贴你过往的一篇文章)
sample = """
作为一名后端开发,我更关注的是系统可靠性和可维护性。
在引入任何新技术之前,我会先评估它的实际落地成本,
包括运维负担、监控体系、以及团队学习曲线。
理论上的最优方案往往很难在生产环境直接复刻,
所以我更倾向于选择 80 分但可控的技术栈。
"""
style = infer_and_save_writing_style(uid, sample)
print("写作风格记忆:", style, "\\n")
# 2. 模拟上传一段“长文档”,请求摘要
doc = """
我们正在评估将 AI 原生浏览器引入企业内部知识管理体系的可行性。
当前痛点包括:员工搜索资料效率低、大量重复提问、文档沉淀不足。
期望通过浏览器侧的本地智能体,在不把敏感数据外发到公有云的前提下,
为员工提供页面摘要、智能问答、以及基于公司文档的上下文补全能力。
技术上,我们需要统一接入多个大模型供应商以规避单点风险,
并且要保证接口风格一致,便于后续扩展与灰度测试。
"""
summary = summarize_or_rewrite_document(
user_id=uid,
document_text=doc,
mode="summary",
extra_instruction="控制在 300 字以内,面向技术管理者。",
)
print("文档摘要:\\n", summary, "\\n")
# 3. 生成一张配图(比如“AI 原生浏览器”的封面插图)
img_prompt = "futuristic browser interface with AI assistant, dark theme, minimalistic, 3D illustration"
img = generate_image(img_prompt)
print("生成图片 URL:", img)
四、注意事项:从 Demo 到生产的关键工程考量
4.1 隐私与合规
- 对于浏览内容、公司内部文档,建议采用本地向量数据库 + 可控模型落地方案(如本地部署中小模型,云端只做补充推理)。
- 明确区分“可上传云端的上下文”和“仅本地可见的敏感信息”,在代码层面做严格的数据分层和日志脱敏。
4.2 上下文控制与成本优化
- 长文档处理要避免“全文塞给大模型”,建议切分 + 检索,只送最相关的几个 chunk。
- 对写作风格这类长期偏好,无需每次都重新推理;可像示例中那样本地持久化。
4.3 多模型与供应商选型
Neo 这类系统本质上需要:
- 文本理解 / 代码辅助大模型;
- 高速、成本可控的中小模型做本地推理或边缘推理;
- 图像生成模型;
- 可能还会引入语音模型、过滤模型(安全、合规)。
为避免在不同厂商 SDK 间切换、处理不同参数格式,工程上更推荐使用统一 API 抽象层。这也是我在实际项目中选择(xuedingmao.com)的主要原因之一:
- 聚合了 500+ 主流大模型(包括 GPT-5.4、Claude 4.6、Gemini 3 Pro 等),新模型上线速度快;
- 提供兼容 OpenAI 的统一接口,像上面的 Python 示例一样,只改 base_url 和 key 即可在多模型间切换;
- 适合做“多模型 AB 测试”“按任务自动选模”这类高级玩法,降低多家模型供应商集成和治理的复杂度。
五、技术资源与工具推荐
-
薛定猫 AI(xuedingmao.com)
适合用作统一的大模型接入层:- OpenAI 兼容模式,便于直接迁移现有代码;
- 支持多家厂商、多模型类型(文本、图像、部分多模态等);
- 接口稳定,可快速在不同模型间切换做实验或灰度发布。
-
本地向量数据库:如 Chroma / Qdrant / Milvus,用于实现 Neo 类“本地记忆”和文档检索。
-
浏览器扩展框架:现代 Chrome/Edge 插件体系 + Manifest V3,是将上面这套 Python 服务包装成 UI 插件的常见路径。
通过拆解 Neo 这类 AI 原生浏览器的能力,并用兼容 OpenAI 的 API 做了一套最小可用实现,你可以在自己的产品中非常快速地搭建起:本地记忆 + 文档智能处理 + 图片生成 + 场景化触发的 AI 工作流。真正的难点不在“能不能调用模型”,而在于数据边界、上下文设计和工程落地,这也是未来一段时间内 AI 开发者的核心竞争力。
#AI #大模型 #Python #机器学习 #技术实战





