OpenAI API Key 获取两种方式全解析:Computer Use Preview 驱动 Playwright 浏览器自动化实战
1. 为什么 Computer Use Preview 值得你花一个下午跑通Computer Use Preview 是 Google 开源的一套「自然语言驱动浏览器」实验项目它把大模型的指令理解能力和 Playwright 的页面操作能力缝在一起你用中文或英文描述一个任务模型负责拆解成点击、输入、滚动、截图这些原子动作Playwright 负责在真实浏览器里执行。它适合谁适合已经会写一点 Python、被 Selenium 的等待和选择器折磨过、想让 Agent 帮忙跑重复网页流程的开发者。说白了它是「会自己看页面、自己决定下一步点哪里」的自动化而不是你写死page.click(#submit)那种。但真正卡住大多数人的不是 Playwright而是模型通道。Computer Use Preview 默认走 Gemini 或 OpenAI 的接口国内直连经常超时于是「OpenAI API Key 获取两种方式」成了搜索热词——一种是官方渠道自己注册另一种是走兼容 OpenAI 协议的统一通道。我这次的做法是代码逻辑完全不动只把base_url和api_key换成 TaoToken 的统一入口让 Computer Use Preview 的模型调用落到一个稳定可达的地址上然后跑一次「打开页面→搜索→截图」的最小闭环验证整条链路是否可用。这篇文章不讲空泛概念直接给你三样东西一份能复制的 Key 配置片段、Playwright 的启动参数、一次端到端验证动作。你照着做半小时内能判断自己的环境到底通没通。核心检索词先摆在这Computer Use Preview 怎么接入、Playwright 自然语言自动化怎么跑、OpenAI API Key 怎么配到统一通道。下面从环境准备开始。2. 前置准备TaoToken 通道与 Computer Use Preview 环境搭建先说通道这块。TaoToken 提供的是 OpenAI 兼容接口官网在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 根地址是 https://taotoken.net/api 。注意这个/api后面不加 UTM 参数代码里填的就是它。你需要先去控制台建一个 Key入口在 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。建完 Key 先别关页面后面配置要用。Computer Use Preview 的环境我建议用独立虚拟环境避免和你机器上已有的 Playwright 版本打架。Python 用 3.11 比较稳3.10 也能跑。步骤如下git clone https://github.com/google/computer-use-preview.git cd computer-use-preview python3 -m venv .venv source .venv/bin/activate # Windows 用 .venv\Scripts\activate pip install --upgrade pip pip install -r requirements.txt playwright install --with-depsplaywright install --with-deps这步在 Linux 上会装系统依赖macOS 和 Windows 一般只下浏览器内核。如果卡在下载 Chromium可以加--only-shell先装精简版或者设置PLAYWRIGHT_DOWNLOAD_HOST指向国内镜像。装完后用playwright --version确认我这边是 1.4x 系列。接下来是模型通道的环境变量。Computer Use Preview 读的是GEMINI_API_KEY或 OpenAI 风格的配置我们要做的是把 OpenAI 兼容的那条路指向 TaoToken。先导出两个变量export OPENAI_API_KEYsk-你的TaoToken密钥 export OPENAI_BASE_URLhttps://taotoken.net/apiWindows PowerShell 用$env:OPENAI_API_KEY...的写法。这里有个坑有些项目读的是OPENAI_API_BASE而不是OPENAI_BASE_URL两个都设上最保险。设完用echo $OPENAI_BASE_URL确认没多空格。注意Key 不要写进 git 仓库用.env文件并加进.gitignore。下面第三节会给完整的.env片段。环境到这一步就算齐了。判断标准很简单python -c import playwright; print(playwright.__version__)能打印版本且curl https://taotoken.net/api/models -H Authorization: Bearer $OPENAI_API_KEY能返回模型列表说明通道和环境都活着。下一节进入可复制的配置。3. 可复制配置settings.json / .env 与 Playwright 启动参数这一节是全文最该抄的部分。Computer Use Preview 的配置分散在环境变量和启动参数里我把它整理成一份.env加一份启动脚本你直接改 Key 就能用。先看.env放在项目根目录# .env —— Computer Use Preview 模型通道配置 OPENAI_API_KEYsk-替换成你的TaoToken密钥 OPENAI_BASE_URLhttps://taotoken.net/api OPENAI_API_BASEhttps://taotoken.net/api # 模型 ID按你控制台里可用的填 COMPUTER_USE_MODELgpt-4o # 备用如果走 Gemini 原生通道 GEMINI_API_KEYyour_gemini_key_if_any USE_VERTEXAIfalse # 浏览器参数 BROWSER_TYPEchromium BROWSER_HEADLESSfalse LOG_LEVELINFO三件套在这里对齐Base URL 是https://taotoken.net/apiKey 是sk-开头那串Model ID 填gpt-4o或你控制台里实际可用的名字。这三样缺一不可很多人 401 就是 Model ID 写了个不存在的名字。再看 Playwright 的启动参数。Computer Use Preview 内部会拉起浏览器但你可以通过环境变量控制它的行为。我实测下来调试阶段一定要BROWSER_HEADLESSfalse能看到浏览器在动出问题好定位。启动脚本run.sh#!/usr/bin/env bash set -a source .env set a python main.py \ --query 打开 https://www.bing.com搜索 Computer Use Preview把前三条结果标题截图保存到 ./shots \ --browser chromium \ --headless false \ --max-steps 15 \ --screenshot-dir ./shots参数说明--max-steps限制模型最多执行多少步防止它在一个页面上无限循环--screenshot-dir指定截图落盘目录验证时直接看这个目录有没有文件。如果你的版本没有这些参数就用环境变量MAX_STEPS15代替。如果你用的是 Cline MCP 或 Claude Code 这类工具去调 Computer Use Preview配置形态会变成 JSON。以 MCP 的settings.json为例{ mcpServers: { computer-use: { command: python, args: [main.py, --mcp], env: { OPENAI_API_KEY: sk-替换成你的TaoToken密钥, OPENAI_BASE_URL: https://taotoken.net/api, COMPUTER_USE_MODEL: gpt-4o } } } }这份 JSON 里同样能看到 Base URL、Key、Model ID 三件套。Codex 的auth.json思路一样把base_url指向https://taotoken.net/apiapi_key填你的 Key。配置写完先别急着跑大任务下一节用最小动作验证。4. 端到端验证一次自然语言驱动的浏览器动作验证的目标只有一个确认「自然语言→模型拆解→Playwright 执行→截图落盘」这条链路是通的。任务越小越好我选的是「打开 Bing搜索一个词截图」。先激活环境并加载变量source .venv/bin/activate set -a; source .env; set a然后跑一个最小查询python main.py --query 打开 https://www.bing.com在搜索框输入 Playwright回车等页面加载完后截图 --headless false --max-steps 10你会看到终端打印类似这样的步骤日志[step 1] actiongoto urlhttps://www.bing.com [step 2] actionclick selectorinput[nameq] [step 3] actiontype textPlaywright [step 4] actionpress keyEnter [step 5] actionscreenshot path./shots/step5.png [step 6] actionfinish如果看到actionfinish且./shots目录里出现了 png 文件恭喜链路通了。这一步同时验证了三件事模型通道能返回结构化的动作指令、Playwright 能执行这些指令、截图能落盘。再补一个纯 API 层的验证确认你的 Key 和 Base URL 真的对from openai import OpenAI client OpenAI( api_keysk-替换成你的TaoToken密钥, base_urlhttps://taotoken.net/api ) resp client.chat.completions.create( modelgpt-4o, messages[{role: user, content: 只回复两个字通了}] ) print(resp.choices[0].message.content)这段跑出「通了」说明模型通道没问题剩下的就是 Computer Use Preview 自己的逻辑。如果这段报错先别碰 Playwright问题在通道层。两段都过你就可以把--query换成自己的真实任务了比如「登录后台导出昨天的订单表格」。验证阶段建议全程headless false看得见才敢信。5. 常见报错排查401、local proxy failed 与 reading choices这一节按真实报错来对。我踩过的坑基本集中在这几个。401 Unauthorized。最常见九成是 Key 或 Base URL 的问题。先确认echo $OPENAI_API_KEY打印的是完整sk-串没有换行和空格。再确认OPENAI_BASE_URL是https://taotoken.net/api注意结尾不要多加/v1有些库会自动补你手动加了就变成/api/v1/v1。如果用的是.env确认source生效了python -c import os; print(os.getenv(OPENAI_BASE_URL))能打印出来才算数。local proxy failed / connection refused。这个报错通常出现在你本地设了HTTP_PROXY或HTTPS_PROXY但代理没开。检查env | grep -i proxy如果有残留就unset HTTP_PROXY HTTPS_PROXY ALL_PROXY。Playwright 启动浏览器时也会读这些变量代理不通会导致浏览器起不来。清掉再跑。reading choices of undefined。这是模型返回体里没有choices字段一般是 Base URL 指错了请求打到了一个不兼容 OpenAI 协议的地址返回了 HTML 或别的结构。确认你的base_url是https://taotoken.net/api并且 Model ID 是控制台里真实存在的。还有一种情况是流式和非流式混用Computer Use Preview 默认非流式你手动开了streamTrue又没处理 chunk也会报这个。OAuth / token expired。如果你用的是 Codex 或 Claude Code 的 OAuth 登录态过期后会报这个。解决办法是重新走一遍授权或者干脆改用 API Key 方式把auth.json里的api_key填上 TaoToken 的 Keybase_url指向统一通道就不依赖 OAuth 了。Playwright 报 browser not found。playwright install没跑成功或者虚拟环境切换后浏览器内核路径变了。重新执行playwright install chromium确认~/.cache/ms-playwright下有对应版本目录。排查顺序建议先跑第 4 节的纯 API 脚本过了再跑 Playwright。这样能把「通道问题」和「浏览器问题」分开不然两个混在一起很难定位。每次改完配置记得重新source .env环境变量不会自动刷新。6. 把通道固定下来长期跑 Agent 的接入建议链路验证通过后接下来要考虑的是怎么让它稳定跑下去。我的建议是把模型通道固定成 TaoToken 的统一入口代码里所有base_url都指向https://taotoken.net/apiKey 统一从环境变量读不硬编码。这样换模型、换项目都不用改代码只改.env。如果你打算长期跑编码类或 Agent 类任务可以看下 Coding Plan入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频调用的场景。日常调试模型返回是否正常用模型对话页 https://taotoken.net/chat?utm_sourcetaotoken_aicg_blog_endutm_contentchatutm_campaignrewrite 快速试一句就行。接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 遇到参数不确定时翻一下比猜快。最后给一个实用技巧把 Computer Use Preview 的--max-steps设成 15 到 20 之间太小任务做不完太大模型容易在动态页面上绕圈。截图目录定期清理不然跑几天磁盘就满了。任务脚本跑通后把--query里的自然语言固化成模板下次直接换参数复用比每次重新描述省事。链路通了之后真正的价值在于你用它替代了多少重复点击。