openai-cli
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseOpenAI CLI
OpenAI CLI
Skill by ara.so — Devtools Skills collection.
The official CLI for the OpenAI REST API. Provides a command-line interface to interact with OpenAI's API endpoints including chat completions, embeddings, fine-tuning, and admin operations.
由ara.so提供的技能——Devtools技能合集。
OpenAI REST API的官方CLI。提供命令行界面,用于与OpenAI的API端点交互,包括聊天补全、嵌入、微调以及管理操作。
Installation
安装
Homebrew (macOS/Linux)
Homebrew(macOS/Linux)
bash
brew install openai/tools/openaibash
brew install openai/tools/openaiGo Install
Go 安装
bash
go install 'github.com/openai/openai-cli/cmd/openai@latest'Ensure Go bin is in your PATH:
bash
export PATH="$PATH:$(go env GOPATH)/bin"bash
go install 'github.com/openai/openai-cli/cmd/openai@latest'确保Go的bin目录在你的PATH中:
bash
export PATH="$PATH:$(go env GOPATH)/bin"Local Development
本地开发
Clone the repository and run locally:
bash
git clone https://github.com/openai/openai-cli.git
cd openai-cli
./scripts/run args...克隆仓库并本地运行:
bash
git clone https://github.com/openai/openai-cli.git
cd openai-cli
./scripts/run args...Configuration
配置
Set up your API credentials using environment variables:
bash
export OPENAI_API_KEY="sk-..."
export OPENAI_ADMIN_KEY="sk-admin-..." # For admin endpoints
export OPENAI_ORG_ID="org-..." # Optional
export OPENAI_PROJECT_ID="proj_..." # OptionalOr use flags on each command:
bash
openai --api-key sk-... responses create --input "Hello"使用环境变量设置你的API凭据:
bash
export OPENAI_API_KEY="sk-..."
export OPENAI_ADMIN_KEY="sk-admin-..." # 用于管理端点
export OPENAI_ORG_ID="org-..." # 可选
export OPENAI_PROJECT_ID="proj_..." # 可选或者在每个命令中使用参数:
bash
openai --api-key sk-... responses create --input "Hello"Environment Variables
环境变量
| Variable | Purpose | Required |
|---|---|---|
| Standard API authentication | For standard endpoints |
| Admin API authentication | For admin endpoints |
| Organization identifier | No |
| Project identifier | No |
| Webhook verification | No |
| 变量 | 用途 | 是否必填 |
|---|---|---|
| 标准API认证 | 用于标准端点 |
| 管理API认证 | 用于管理端点 |
| 组织标识符 | 否 |
| 项目标识符 | 否 |
| Webhook验证 | 否 |
Command Structure
命令结构
bash
openai [resource] <command> [flags...]bash
openai [resource] <command> [flags...]Key Commands
核心命令
Chat Completions
聊天补全
Create a chat completion:
bash
openai responses create \
--input "Explain quantum computing in simple terms" \
--model gpt-4Stream responses:
bash
openai responses create \
--input "Write a poem about coding" \
--model gpt-4 \
--streamWith system message and temperature:
bash
openai responses create \
--input "What is recursion?" \
--model gpt-4 \
--system "You are a computer science teacher" \
--temperature 0.7创建聊天补全:
bash
openai responses create \
--input "用简单的语言解释量子计算" \
--model gpt-4流式响应:
bash
openai responses create \
--input "写一首关于编程的诗" \
--model gpt-4 \
--stream携带系统消息和温度参数:
bash
openai responses create \
--input "什么是递归?" \
--model gpt-4 \
--system "你是一名计算机科学老师" \
--temperature 0.7File Operations
文件操作
Upload a file:
bash
openai files create \
--file @training_data.jsonl \
--purpose fine-tuneList files:
bash
openai files listRetrieve file content:
bash
openai files retrieve file-abc123Delete a file:
bash
openai files delete file-abc123上传文件:
bash
openai files create \
--file @training_data.jsonl \
--purpose fine-tune列出文件:
bash
openai files list获取文件内容:
bash
openai files retrieve file-abc123删除文件:
bash
openai files delete file-abc123Embeddings
嵌入
Generate embeddings:
bash
openai embeddings create \
--input "The quick brown fox" \
--model text-embedding-3-smallMultiple inputs:
bash
openai embeddings create \
--input "First text" \
--input "Second text" \
--model text-embedding-3-large生成嵌入:
bash
openai embeddings create \
--input "The quick brown fox" \
--model text-embedding-3-small多输入:
bash
openai embeddings create \
--input "First text" \
--input "Second text" \
--model text-embedding-3-largeFine-tuning
微调
Create a fine-tuning job:
bash
openai fine-tuning jobs create \
--training-file file-abc123 \
--model gpt-3.5-turboList fine-tuning jobs:
bash
openai fine-tuning jobs listCheck job status:
bash
openai fine-tuning jobs retrieve ftjob-abc123Cancel a job:
bash
openai fine-tuning jobs cancel ftjob-abc123创建微调任务:
bash
openai fine-tuning jobs create \
--training-file file-abc123 \
--model gpt-3.5-turbo列出微调任务:
bash
openai fine-tuning jobs list查看任务状态:
bash
openai fine-tuning jobs retrieve ftjob-abc123取消任务:
bash
openai fine-tuning jobs cancel ftjob-abc123Admin Operations
管理操作
Usage statistics:
bash
openai admin:organization:usage completions \
--start-time 1735689600 \
--end-time 1735776000 \
--bucket-width 1d使用统计:
bash
openai admin:organization:usage completions \
--start-time 1735689600 \
--end-time 1735776000 \
--bucket-width 1dFile Handling
文件处理
Passing Files as Arguments
传递文件作为参数
Use prefix for file paths:
@bash
openai responses create --arg @input.txtWithin JSON/YAML:
bash
openai <command> --arg '{image: "@image.jpg"}'bash
openai <command> <<YAML
arg:
image: "@abe.jpg"
YAML使用前缀表示文件路径:
@bash
openai responses create --arg @input.txt在JSON/YAML中:
bash
openai <command> --arg '{image: "@image.jpg"}'bash
openai <command> <<YAML
arg:
image: "@abe.jpg"
YAMLExplicit Encoding
显式编码
Force string encoding:
bash
openai <command> --arg @file://myfile.txtForce base64 encoding:
bash
openai <command> --arg @data://image.pngAbsolute paths:
bash
openai <command> --arg @file:///tmp/file.txt强制字符串编码:
bash
openai <command> --arg @file://myfile.txt强制base64编码:
bash
openai <command> --arg @data://image.png绝对路径:
bash
openai <command> --arg @file:///tmp/file.txtEscaping @ Signs
转义@符号
To pass a literal character:
@bash
openai <command> --username '\@username'要传递字面量字符:
@bash
openai <command> --username '\@username'Output Formatting
输出格式化
Format Options
格式选项
Control output format with :
--formatbash
undefined使用控制输出格式:
--formatbash
undefinedPretty-printed (default for TTY)
美观打印(TTY默认)
openai responses create --input "Hello" --format pretty
openai responses create --input "Hello" --format pretty
Raw JSON
原始JSON
openai responses create --input "Hello" --format json
openai responses create --input "Hello" --format json
JSONL (one JSON object per line)
JSONL(每行一个JSON对象)
openai responses create --input "Hello" --format jsonl
openai responses create --input "Hello" --format jsonl
YAML
YAML
openai responses create --input "Hello" --format yaml
openai responses create --input "Hello" --format yaml
Raw response body
原始响应体
openai responses create --input "Hello" --format raw
undefinedopenai responses create --input "Hello" --format raw
undefinedData Transformation
数据转换
Use GJSON syntax to extract specific fields:
bash
undefined使用GJSON语法提取特定字段:
bash
undefinedGet just the message content
仅获取消息内容
openai responses create
--input "Hello"
--transform "choices.0.message.content"
--input "Hello"
--transform "choices.0.message.content"
openai responses create
--input "Hello"
--transform "choices.0.message.content"
--input "Hello"
--transform "choices.0.message.content"
Get multiple fields
获取多个字段
openai responses create
--input "Hello"
--transform "{id: id, content: choices.0.message.content}"
--input "Hello"
--transform "{id: id, content: choices.0.message.content}"
Transform errors:
```bash
openai responses create \
--input "Hello" \
--format-error json \
--transform-error "error.message"openai responses create
--input "Hello"
--transform "{id: id, content: choices.0.message.content}"
--input "Hello"
--transform "{id: id, content: choices.0.message.content}"
转换错误信息:
```bash
openai responses create \
--input "Hello" \
--format-error json \
--transform-error "error.message"Global Flags
全局参数
bash
--api-key # API key (or use OPENAI_API_KEY)
--admin-api-key # Admin key (or use OPENAI_ADMIN_KEY)
--organization # Org ID (or use OPENAI_ORG_ID)
--project # Project ID (or use OPENAI_PROJECT_ID)
--base-url # Custom API endpoint
--debug # Enable debug logging with HTTP details
--version, -v # Show CLI version
--help # Show help for command
--format # Output format (auto, explore, json, jsonl, pretty, raw, yaml)
--format-error # Error output format
--transform # GJSON transform for data output
--transform-error # GJSON transform for error outputbash
--api-key # API密钥(或使用OPENAI_API_KEY)
--admin-api-key # 管理密钥(或使用OPENAI_ADMIN_KEY)
--organization # 组织ID(或使用OPENAI_ORG_ID)
--project # 项目ID(或使用OPENAI_PROJECT_ID)
--base-url # 自定义API端点
--debug # 启用包含HTTP详情的调试日志
--version, -v # 显示CLI版本
--help # 显示命令帮助
--format # 输出格式(auto, explore, json, jsonl, pretty, raw, yaml)
--format-error # 错误输出格式
--transform # 数据输出的GJSON转换
--transform-error # 错误输出的GJSON转换Common Patterns
常见使用模式
Interactive Chat Session
交互式聊天会话
bash
while true; do
read -p "You: " input
openai responses create \
--input "$input" \
--model gpt-4 \
--format pretty
donebash
while true; do
read -p "你: " input
openai responses create \
--input "$input" \
--model gpt-4 \
--format pretty
doneBatch Processing
批量处理
Process multiple inputs from a file:
bash
while IFS= read -r line; do
openai responses create \
--input "$line" \
--model gpt-3.5-turbo \
--format json >> results.jsonl
done < inputs.txt处理文件中的多个输入:
bash
while IFS= read -r line; do
openai responses create \
--input "$line" \
--model gpt-3.5-turbo \
--format json >> results.jsonl
done < inputs.txtJSON Input
JSON输入
Pass structured data:
bash
openai responses create \
--input "Translate to French" \
--model gpt-4 \
--max-tokens 100 \
--temperature 0.3传递结构化数据:
bash
openai responses create \
--input "翻译成法语" \
--model gpt-4 \
--max-tokens 100 \
--temperature 0.3Piping Data
管道传递数据
bash
echo "Summarize this text" | openai responses create \
--input "$(cat)" \
--model gpt-4Or:
bash
cat document.txt | openai responses create \
--input "Summarize: $(cat -)" \
--model gpt-4bash
echo "总结这段文字" | openai responses create \
--input "$(cat)" \
--model gpt-4或者:
bash
cat document.txt | openai responses create \
--input "总结:$(cat -)" \
--model gpt-4Image Analysis
图像分析
bash
openai responses create \
--input '{text: "What is in this image?", image: "@photo.jpg"}' \
--model gpt-4-vision-previewbash
openai responses create \
--input '{text: "这张图片里有什么?", image: "@photo.jpg"}' \
--model gpt-4-vision-previewCustom Base URL
自定义基础URL
For Azure or custom endpoints:
bash
openai --base-url https://custom.openai.azure.com/v1 \
responses create \
--input "Hello" \
--model gpt-4针对Azure或自定义端点:
bash
openai --base-url https://custom.openai.azure.com/v1 \
responses create \
--input "Hello" \
--model gpt-4Debugging
调试
Enable debug mode to see full HTTP requests/responses:
bash
openai --debug responses create --input "Test"Warning: Debug logs include request/response bodies which may contain sensitive data.
启用调试模式查看完整的HTTP请求/响应:
bash
openai --debug responses create --input "Test"警告:调试日志包含请求/响应体,可能包含敏感数据。
Troubleshooting
故障排除
Command Not Found
命令未找到
Ensure Go bin is in your PATH:
bash
echo $PATH | grep "$(go env GOPATH)/bin"确保Go的bin目录在你的PATH中:
bash
echo $PATH | grep "$(go env GOPATH)/bin"If not found:
如果未找到:
export PATH="$PATH:$(go env GOPATH)/bin"
undefinedexport PATH="$PATH:$(go env GOPATH)/bin"
undefinedAuthentication Errors
认证错误
Verify API key is set:
bash
echo $OPENAI_API_KEY验证API密钥已设置:
bash
echo $OPENAI_API_KEYShould output: sk-...
应输出:sk-...
Check key validity:
```bash
openai responses create --input "test" --model gpt-3.5-turbo
检查密钥有效性:
```bash
openai responses create --input "test" --model gpt-3.5-turboFile Not Found Errors
文件未找到错误
Use absolute paths or verify relative paths:
bash
undefined使用绝对路径或验证相对路径:
bash
undefinedAbsolute path
绝对路径
openai files create --file @/full/path/to/file.jsonl --purpose fine-tune
openai files create --file @/full/path/to/file.jsonl --purpose fine-tune
Verify file exists
验证文件存在
ls -la @file.jsonl
undefinedls -la @file.jsonl
undefinedRate Limiting
速率限制
Add delays between requests:
bash
for i in {1..10}; do
openai responses create --input "Request $i"
sleep 1
done在请求之间添加延迟:
bash
for i in {1..10}; do
openai responses create --input "Request $i"
sleep 1
doneModel Not Available
模型不可用
List available models (if endpoint exists):
bash
openai models listCheck model name spelling and access permissions.
列出可用模型(如果端点存在):
bash
openai models list检查模型名称拼写和访问权限。
Output Not Formatted
输出未格式化
Force format explicitly:
bash
openai responses create --input "Hello" --format jsonCheck if output is being piped (auto-detection may choose raw format):
bash
openai responses create --input "Hello" --format pretty | less显式强制格式:
bash
openai responses create --input "Hello" --format json检查输出是否被管道传输(自动检测可能选择原始格式):
bash
openai responses create --input "Hello" --format pretty | lessLinking Custom SDK Versions
链接自定义SDK版本
For development, link against different Go SDK versions:
bash
undefined开发时,链接不同的Go SDK版本:
bash
undefinedLink to specific version
链接到特定版本
./scripts/link github.com/openai/openai-go@v1.2.3
./scripts/link github.com/openai/openai-go@v1.2.3
Link to local SDK copy
链接到本地SDK副本
./scripts/link ../openai-go
./scripts/link ../openai-go
Default (../openai-go)
默认(../openai-go)
./scripts/link
undefined./scripts/link
undefinedVersion Information
版本信息
Check CLI version:
bash
openai --version检查CLI版本:
bash
openai --versionor
或
openai -v
Get help:
```bash
openai --help
openai responses --help
openai responses create --helpopenai -v
获取帮助:
```bash
openai --help
openai responses --help
openai responses create --help