OpenAI API 接入
```bash pip install --upgrade openai pip install python-dotenv ``` 为什么要配置 API Base:大陆无法直接访问 api.openai.com,需要代理或中转地址。 Key 放在环境变量里(推荐),在项目目录建 `.env` 文件: ```bash OPENAI_API_KEY="sk-xxxx" OPENAI_BASE_URL="https://api.fe8.cn/v1" ```
ChatGPT 与 OpenAI API 的关系: - ChatGPT 是面向终端用户的聊天产品(3.5 免费,GPT-4 及插件收费,Plus 需国外银行卡) - OpenAI API 是面向开发者的模型接口,按量计费 - 注册了 ChatGPT 账号 ≠ 可以免费使用 API
```python from openai import OpenAI from dotenv import load_dotenv, find_dotenv # 加载 .env 到环境变量,自动读取 OPENAI_API_KEY 和 OPENAI_BASE_URL _ = load_dotenv(find_dotenv()) client = OpenAI() messages = [ {"role": "system", "content": "七三笔记网站是一个关于AI的学习网站"}, # 注入新知识 {"role": "user", "content": "七三笔记是什么网站"}, ] chat_completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=messages ) print(chat_completion.choices[0].message.content) ``` system 消息用于"注入新知识/设定角色",user 消息是真正的问题。 同样的 key 也可以直接写在代码里(`OpenAI(api_key=..., base_url=...)`),但不推荐提交到代码库。
```python from openai import OpenAI from dotenv import load_dotenv, find_dotenv _ = load_dotenv(find_dotenv()) client = OpenAI() response = client.completions.create( model="gpt-3.5-turbo-instruct", prompt="请讲一个笑话,关于日常", max_tokens=512, stream=True # 流式:逐 token 返回 ) for chunk in response: print(chunk.choices[0].text, end='') ``` 返回结构(chat.completions):`response.choices[0].message.content` 是正文; `usage` 里有 `prompt_tokens / completion_tokens / total_tokens`,计费按 token 数。
| 参数 | 作用 | 建议 | |------|------|------| | temperature | 采样温度,控制随机性 | 任务型 0~0.3;创意型 0.7~1.0 | | top_p | 核采样,累计概率截断 | 与 temperature 二选一调,不要同时大改 | | max_tokens | 最大生成 token 数 | 按任务长度给足 | | stream | 流式输出 | 对话类产品建议开 | | model | 模型名 | 按成本/能力选型 | temperature 的数学含义——对 logits 做带温度的 softmax: $$p_i = \frac{e^{z_i/T}}{\sum_j e^{z_j/T}}$$ T→0 时退化为 argmax(输出确定);T 越大分布越接近均匀(输出随机)。
文心一言与千帆
- 文心一言使用:https://yiyan.baidu.com/ ,点"新建对话"直接提问 - 开发者入口:https://yiyan.baidu.com/developer - 百度智能云千帆 ModelBuilder:https://cloud.baidu.com/doc/WENXINWORKSHOP/index.html - 应用创建:https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application
用 API Key / Secret Key 换 access_token(文档:https://cloud.baidu.com/doc/WENXINWORKSHOP/s/Ilkkrb0i5): ```python import requests import json url = "https://aip.baidubce.com/oauth/2.0/token" \ "?client_id=你的APIKey&client_secret=你的SecretKey&grant_type=client_credentials" response = requests.request( "POST", url, headers={'Content-Type': 'application/json', 'Accept': 'application/json'}, data=json.dumps("") ) print(response.text) # 返回里取 access_token ``` curl 等价写法: ```bash curl -X POST 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=[API Key]&client_secret=[Secret Key]' \ -H 'Content-Type: application/json' ```
langchain 调用千帆(其它厂商模型分装在 langchain_community 底包中): ```python import os os.environ["qianfan_ak"] = "你的ak" os.environ["qianfan_sk"] = "你的sk" from langchain_community.chat_models import QianfanChatEndpoint from langchain_core.messages import HumanMessage # 需先在千帆控制台开通一个模型服务 llm = QianfanChatEndpoint( qianfan_ak=os.getenv('qianfan_ak'), qianfan_sk=os.getenv('qianfan_sk') ) ret = llm.invoke([HumanMessage(content="你是谁")]) print(ret.content) ```
GLM·智谱
智谱开放平台(https://open.bigmodel.cn)同样是 OpenAI 风格接口: ```bash curl https://open.bigmodel.cn/api/paas/v4/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer 你的key" \ -d '{ "model": "glm-4-0520", "max_tokens": 60, "messages": [{"role": "user", "content": "who are you"}] }' ``` ```python import openai client = openai.OpenAI( api_key="your-api-key", base_url="https://open.bigmodel.cn/api/paas/v4" ) response = client.chat.completions.create( model="glm-4", messages=[{"role": "user", "content": "你好"}], max_tokens=1024 ) ```
以代理方式把 claude code 接到 GLM(ANTHROPIC_BASE_URL 指向智谱的 anthropic 兼容端点): ```bash node --version # v20.9.0 npm install -g @anthropic-ai/claude-code export ANTHROPIC_BASE_URL="https://open.bigmodel.cn/api/anthropic" export ANTHROPIC_AUTH_TOKEN="你的智谱key" cd your-project-directory claude ``` vscode 插件方式(插件升级后需要账户登录时,配置环境变量): ```json "claude-code.environmentVariables": [ {"name": "ANTHROPIC_BASE_URL", "value": "https://open.bigmodel.cn/api/anthropic"} ] ``` key 也可写入 `~/.claude/config.json` 的 `primaryApiKey` 字段。 使用说明:https://docs.bigmodel.cn/cn/coding-plan/overview
AI 编程
AI 编程要求的多维能力:**业务、编程、AI、市场营销,多维一体**。 市面常见工具: 1. Bito —— 比 Copilot 还多些创新 2. DevChat —— 前端开源,同时卖 GPT 服务 3. Cursor —— AI first 的 IDE 4. Tabnine —— 代码补全,个人基础版免费 5. 通义灵码 —— 免费,阿里云生态 6. CodeGeex —— 清华智谱,CodeGeex3Pro 免费可用 7. Comate —— 百度,有免费试用版 8. Amazon CodeWhisperer —— 免费,AWS 相关编程能力卓越
以 Copilot 为例看工作原理: - **模型层**:最初使用 OpenAI Codex 模型,现已升级为更强模型 - **应用层**:prompt engineering。Prompt 中包含: 1. 组织上下文:光标前和光标后的代码片段 2. 获取相关代码片段:当前文件和其它打开的 tab 被切成每个 60 行的片段, 用 **Jaccard 相似度**评分取高分片段 3. 修饰上下文:用注释插入片段路径,如 `# filepath: foo/bar.py` 4. 优先级:按代码常识判断补全输入的优先级 5. 补全格式:函数/类/if-else 定义之后补全整段,其它时候只补当前行 Jaccard 相似度(衡量两个代码片段 token 集合的重合度): $$J(A, B) = \frac{|A \cap B|}{|A \cup B|}$$
**AI 能力定律**:AI 能力的上限,是使用者的判断力 $$\text{AI 实际能力} = \min(\text{AI 能力}, \text{使用者判断力})$$ **AI 提效定律**:AI 提升的效率,与使用者的判断力成正比,与生产力成反比 $$\text{效率提升幅度} = \frac{\text{使用者判断力}}{\text{使用者生产力}}$$ 解读: 1. 使用者的判断力最重要 2. 提升判断力比提升实操能力更重要——"眼高手低"者的福音 3. 广阔的视野是判断力的养料 公司推动使用的步骤:先养成提问的习惯 → 建立"AI 是结对编程小伙伴而非神"的认知 → 购买账号 → 真的用起来。 常见质疑的回应: - "AI 给的代码直接抄就死了" → 参考 AI 效能定律,判断力先行 - "AI 写不了复杂架构" → 先以架构师身份让 AI 辅助选型(喂需求/业务文档), 再以开发者身份让 AI 逐层写业务代码
Codex 是 OpenAI 的跨平台命令行编码 agent: ```bash # Mac / Linux curl -fsSL https://chatgpt.com/codex/install.sh | sh # Windows powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex" # 通用 npm install -g @openai/codex codex --version codex --model gpt-5.5 # 启动 codex --model gpt-5.5 --debug # 调试模式 ``` 交互内常用:`/model` 切换模型、`/exit` 退出、Ctrl+C 退出。 用中转地址时选 "Provide your own API key",配置 `~/.codex/config.toml`: ```toml [models] [models."gpt-5.5"] provider = "openai" base_url = "https://your-proxy.example.com/v1" ``` key 配置在同目录 auth.json 中;config.toml 建议用 vscode 打开编辑(记事本可能改变文件编码)。
可本机部署的 Tabby(https://tabby.tabbyml.com/): - 全开源,可本机/独立本地部署,支持所有开源编程模型 ```bash # linux/windows 通用,首次执行会下载镜像 docker run --entrypoint /opt/tabby/bin/tabby-cpu -it \ -p 8080:8080 -v $HOME/.tabby:/data \ tabbyml/tabby serve --model StarCoder-1B ``` 更多开源编程大模型: 1. Code Llama —— Meta 出品(7B/13B/34B/70B) 2. DeepSeek-Coder —— 1B 到 33B 3. CodeGemma —— Google 出品 4. Ziya-Coding-15B —— 深圳 IDEA 研究院 5. CodeFuse-CodeLlama-34B —— 阿里出品 6. WizardCoder —— WizardLM 出品
参考
     OpenAI 官方文档 
     千帆 ModelBuilder 
     智谱 coding plan