AI部署笔记
# AI工具
## 文本对话框
这是最早的AI工具, 通过网页对话来排查问题等
## IDE插件
通过IDE里面的插件, 来框选代码, 修改问题, 分析问题等
## 助手
直接在电脑本地跑软件, 直接给指令, 他就会完成你给的任务
## 使用思路
截至20260713, 目前主流的助手叫agent, 有codex, claude之类的
还有一种叫CLI的终端操作的助手, 跟agent差不多, 只是把操作界面变成了终端, 适合在服务器上部署
## 分类
agent和CLI属于驱壳, qwen-max这种属于大脑
## 选型1
之前同事推荐claude, 断档第一, 但是目前claude对国区封锁很严重, 折腾很麻烦
## 选型2
后来想用openai的codex原生模型GPT系列的, 对国内支持也不错
但是在付款的时候失败了, 不知道为什么, 没有给原因, 可能是付款方式等导致的, 后面弄一些苹果账户的礼品卡试试
## 选型3
目前当务之急是选一个临时凑合用的, 我就选了codex+qwen
# 安装过程
## codex+原生
首先安装codex, 一条指令搞定
```
npm install -g @openai/codex@latest
```
确保node是22+, 但是好像20也没事
在~/.env的地方添加了一些代理信息, 使其有魔法
```
HTTP_PROXY="socks5://127.0.0.1:1080"
HTTPS_PROXY="socks5://127.0.0.1:1080"
ALL_PROXY="socks5://127.0.0.1:1080"
NO_PROXY="localhost,127.0.0.1,::1"
```
我试了codex+原生, 他提示我没有额度, 应该是访问成功了, 只是没有额度, 后面卡在了付款上面, 就不折腾了
## codex+qwen
后来尝试用qwen模型, 把相关配置设置一下
```
model = "qwen3.7-max"
model_provider = "dashscope"
sandbox_mode = "workspace-write"
approval_policy = "on-request"
web_search = "disabled"
DASHSCOPE_API_KEY="XXX"
[model_providers.dashscope]
name = "阿里云百炼"
base_url = "https://dashscope.aliyuncs.com/compatible-mode/v1"
env_key = "DASHSCOPE_API_KEY"
wire_api = "responses"
[tui.model_availability_nux]
"gpt-5.5" = 4
"gpt-5.6-sol" = 4
```
后来一直弄, 都弄不好, 一直报这个错误:
```
⚠ Model metadata for `qwen3.7-max` not found. Defaulting to fallback metadata;
this can degrade performance and cause issues.
■ stream disconnected before completion: error sending request for url
(https://dashscope.aliyuncs.com/compatible-mode/v1/responses)
```
排查了很多方向, 例如:
### node版本
怀疑是版本太老, 结果老版本也没问题
### 怀疑qwen不支持responses
在对话框问千问, 他说目前模型不支持responses, 需要改为chat
但是codex早就不支持chat模式了, 肯定不能这样改, 但是千问模型一直让我往这个方向改, 甚至还让我装一个环境让chat转化为responses, 一直鬼打墙, 很蠢
我去浏览器问chatgpt, 他不说结论, 而是让我提供各种信息, 他会自己分析是什么情况, 他让我试一下以下这个指令, 如果成功的话, 就代表是支持的
```
curl https://dashscope.aliyuncs.com/compatible-mode/v1/responses -H "Authorization: Bearer $DASHSCOPE_API_KEY" -H "Content-Type:application/json" -d '{"model":"qwen3.7-max","input":"你好"}'
```
结果成功了, 代表不是模式的原因
(顺便由此可见, 国内外的模型差的不是一点半点, 国内的模型总是鬼打墙, 搜索的资料都是国内的垃圾信息)
### 关于not found报错
后来我上网搜到一个链接, [codex+qwen的教程](https://www.cnblogs.com/youring2/p/20143850), 根据这个链接, 帮我们排除了一些问题:
1. not found报错只是警告, 无所谓
2. codex+qwen是行得通的
### 回退codex版本
根据上面的链接, chatgpt让我回退codex版本试一下
```
npm install -g @openai/codex@0.133.0
```
结果还是不行
### 代理
因为我依稀记得自己设置了一些代理, 但是时隔太久没什么印象, 让chatgpt往这方面排查一下, 他让我在运行codex报错的时候监控网络状态
```
strace -f -e trace=execve,connect codex exec "hello"
```
打印内容我看到了关键的127.0.0.1:1080的信息, 确实是走了代理
```
[pid 32253] +++ exited with 0 +++ [pid 32252] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=32253, si_uid=1000, si_status=0, si_utime=0, si_stime=0} --- [pid 32232] connect(5, {sa_family=AF_INET, sin_port=htons(1080), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EINPROGRESS (Operation now in progress)
```
其实我早就想到这个问题, 只是当时echo了$PROXY的相关信息, 都是空的, 不知道为什么, chatgpt让我排查是哪里指定了这些代理信息, 排查了很大一圈, 后面给出了一条指令, 看看是哪里有相关记录
```
grep -R "127.0.0.1:1080" ~ 2>/dev/null
```
后面果然找到了我一周前配置的~/.codex/.env(在"codex+原生"章节里), 把它删了就好了
chatgpt还是比较有条理, 有推理能力的, 比qwen这种搜索型模型还是好很多
评论
发表评论