diff options
| author | Adam <[email protected]> | 2026-02-28 15:27:11 -0600 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-28 15:27:11 -0600 |
| commit | e1e18c7abdb1025d7be63acee1f188b94d16eb9b (patch) | |
| tree | ad14a08aba4752d3ab03452209520c94bb0df59e /packages/web/src/content/docs/ko | |
| parent | 971bd30516fb2b245f87bdf79e36bb64e72265bc (diff) | |
| download | opencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.tar.gz opencode-e1e18c7abdb1025d7be63acee1f188b94d16eb9b.zip | |
chore(docs): i18n sync (#15417)
Diffstat (limited to 'packages/web/src/content/docs/ko')
| -rw-r--r-- | packages/web/src/content/docs/ko/config.mdx | 57 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/custom-tools.mdx | 26 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/keybinds.mdx | 12 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/plugins.mdx | 91 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/providers.mdx | 707 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/sdk.mdx | 140 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/themes.mdx | 83 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/tui.mdx | 200 | ||||
| -rw-r--r-- | packages/web/src/content/docs/ko/zen.mdx | 44 |
9 files changed, 762 insertions, 598 deletions
diff --git a/packages/web/src/content/docs/ko/config.mdx b/packages/web/src/content/docs/ko/config.mdx index e906eaf47..2f08824d6 100644 --- a/packages/web/src/content/docs/ko/config.mdx +++ b/packages/web/src/content/docs/ko/config.mdx @@ -14,10 +14,11 @@ OpenCode는 **JSON**과 **JSONC**(주석이 포함된 JSON) 형식을 모두 지 ```jsonc title="opencode.jsonc" { "$schema": "https://opencode.ai/config.json", - // Theme configuration - "theme": "opencode", "model": "anthropic/claude-sonnet-4-5", "autoupdate": true, + "server": { + "port": 4096, + }, } ``` @@ -33,7 +34,7 @@ config 파일은 **교체되지 않고 병합**됩니다. config 파일은 서로 대체되는 방식이 아니라 병합됩니다. 아래 config 위치의 설정이 결합되며, 충돌하는 key에 대해서만 나중에 로드된 config가 앞선 값을 override합니다. 충돌하지 않는 설정은 모두 유지됩니다. -예를 들어, 전역 config에 `theme: "opencode"`와 `autoupdate: true`가 있고 프로젝트 config에 `model: "anthropic/claude-sonnet-4-5"`가 있으면 최종 config에는 이 세 설정이 모두 포함됩니다. +예를 들어, 전역 config에 `autoupdate: true`가 있고 프로젝트 config에 `model: "anthropic/claude-sonnet-4-5"`가 있으면 최종 config에는 이 설정이 모두 포함됩니다. --- @@ -94,7 +95,9 @@ Remote config는 가장 먼저 로드되어 기본 레이어 역할을 합니다 ### Global -전역 OpenCode config는 `~/.config/opencode/opencode.json`에 두세요. theme, provider, keybind 같은 사용자 전체 기본 설정은 전역 config로 관리하세요. +전역 OpenCode config는 `~/.config/opencode/opencode.json`에 두세요. provider, model, permissions 같은 사용자 전체 기본 설정은 전역 config로 관리하세요. + +TUI 관련 설정은 `~/.config/opencode/tui.json`을 사용하세요. 전역 config는 조직의 Remote 기본값을 override합니다. @@ -104,6 +107,8 @@ Remote config는 가장 먼저 로드되어 기본 레이어 역할을 합니다 프로젝트 루트에 `opencode.json`을 추가하세요. 프로젝트 config는 표준 config 파일 중 우선순위가 가장 높아 전역 및 Remote config를 모두 override합니다. +프로젝트별 TUI 설정은 `tui.json`을 함께 추가하세요. + :::tip 프로젝트별 config는 프로젝트 루트에 두세요. ::: @@ -142,7 +147,9 @@ custom 디렉토리는 전역 config와 `.opencode` 디렉토리 뒤에 로드� ## Schema -config 파일의 schema는 [**`opencode.ai/config.json`**](https://opencode.ai/config.json)에 정의되어 있습니다. +server/runtime config schema는 [**`opencode.ai/config.json`**](https://opencode.ai/config.json)에 정의되어 있습니다. + +TUI config는 [**`opencode.ai/tui.json`**](https://opencode.ai/tui.json)을 사용합니다. 편집기에서 이 schema를 기반으로 validation과 autocomplete를 사용할 수 있습니다. @@ -150,28 +157,24 @@ config 파일의 schema는 [**`opencode.ai/config.json`**](https://opencode.ai/c ### TUI -`tui` 옵션으로 TUI 관련 설정을 구성할 수 있습니다. +TUI 관련 설정에는 전용 `tui.json` (또는 `tui.jsonc`) 파일을 사용하세요. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", - "tui": { - "scroll_speed": 3, - "scroll_acceleration": { - "enabled": true - }, - "diff_style": "auto" - } + "$schema": "https://opencode.ai/tui.json", + "scroll_speed": 3, + "scroll_acceleration": { + "enabled": true + }, + "diff_style": "auto" } ``` -사용 가능한 옵션: +`OPENCODE_TUI_CONFIG`를 사용하여 사용자 지정 TUI 설정 파일을 가리킬 수 있습니다. -- `scroll_acceleration.enabled` - macOS 스타일 스크롤 가속을 활성화합니다. **`scroll_speed`보다 우선합니다.** -- `scroll_speed` - 사용자 정의 스크롤 속도 배수(기본: `3`, 최소: `1`). `scroll_acceleration.enabled`가 `true`이면 무시됩니다. -- `diff_style` - diff 렌더링 방식을 제어합니다. `"auto"`는 터미널 너비에 맞춰 조정되고, `"stacked"`는 항상 단일 컬럼으로 표시합니다. +`opencode.json`의 기존 `theme`, `keybinds`, `tui` 키는 더 이상 사용되지 않으며(deprecated) 가능한 경우 자동으로 마이그레이션됩니다. -[TUI에 대해 더 알아보기](/docs/tui). +[TUI 구성에 대해 더 알아보기](/docs/tui#configure). --- @@ -297,12 +300,12 @@ Bearer token(`AWS_BEARER_TOKEN_BEDROCK` 또는 `/connect`)은 profile 기반 인 ### Themes -`theme` 옵션으로 OpenCode config에서 사용할 theme를 설정할 수 있습니다. +`tui.json`에서 UI 테마를 설정하세요. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", - "theme": "" + "$schema": "https://opencode.ai/tui.json", + "theme": "tokyonight" } ``` @@ -402,11 +405,11 @@ Bearer token(`AWS_BEARER_TOKEN_BEDROCK` 또는 `/connect`)은 profile 기반 인 ### Keybinds -`keybinds` 옵션으로 keybind를 커스터마이즈할 수 있습니다. +`tui.json`에서 단축키를 사용자 지정하세요. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", + "$schema": "https://opencode.ai/tui.json", "keybinds": {} } ``` diff --git a/packages/web/src/content/docs/ko/custom-tools.mdx b/packages/web/src/content/docs/ko/custom-tools.mdx index 77310557f..c90db16f1 100644 --- a/packages/web/src/content/docs/ko/custom-tools.mdx +++ b/packages/web/src/content/docs/ko/custom-tools.mdx @@ -79,6 +79,32 @@ export const multiply = tool({ --- +#### 기본 도구와 이름 충돌 + +커스텀 도구는 도구 이름으로 식별됩니다. 커스텀 도구가 기본 도구와 같은 이름을 사용하면 커스텀 도구가 우선순위를 갖습니다. + +예를 들어, 이 파일은 기본 `bash` 도구를 대체합니다: + +```ts title=".opencode/tools/bash.ts" +import { tool } from "@opencode-ai/plugin" + +export default tool({ + description: "Restricted bash wrapper", + args: { + command: tool.schema.string(), + }, + async execute(args) { + return `blocked: ${args.command}` + }, +}) +``` + +:::note +의도적으로 기본 도구를 대체하려는 경우가 아니라면 고유한 이름을 사용하는 것이 좋습니다. 도구를 오버라이드하지 않고 비활성화만 하려면 [permissions](/docs/permissions)를 사용하세요. +::: + +--- + ### 인자 인자 타입은 `tool.schema`로 정의할 수 있습니다. `tool.schema`는 [Zod](https://zod.dev) 기반입니다. diff --git a/packages/web/src/content/docs/ko/keybinds.mdx b/packages/web/src/content/docs/ko/keybinds.mdx index aef7ae357..2920a2235 100644 --- a/packages/web/src/content/docs/ko/keybinds.mdx +++ b/packages/web/src/content/docs/ko/keybinds.mdx @@ -3,11 +3,11 @@ title: 키바인드 description: 키바인드를 커스터마이즈하세요. --- -OpenCode에는 OpenCode config를 통해 커스터마이즈할 수 있는 keybinds 목록이 있습니다. +OpenCode에는 `tui.json`을 통해 커스터마이즈할 수 있는 키바인드 목록이 있습니다. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", + "$schema": "https://opencode.ai/tui.json", "keybinds": { "leader": "ctrl+x", "app_exit": "ctrl+c,ctrl+d,<leader>q", @@ -117,11 +117,11 @@ keybinds에 리더 키를 꼭 사용할 필요는 없지만, 사용하는 것을 ## 키바인드 비활성화 -config에 해당 키를 값 `"none"`으로 추가하면 keybind를 비활성화할 수 있습니다. +`tui.json`에 해당 키를 값 `"none"`으로 추가하면 키바인드를 비활성화할 수 있습니다. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", + "$schema": "https://opencode.ai/tui.json", "keybinds": { "session_compact": "none" } diff --git a/packages/web/src/content/docs/ko/plugins.mdx b/packages/web/src/content/docs/ko/plugins.mdx index 7214f3265..f20eb90c4 100644 --- a/packages/web/src/content/docs/ko/plugins.mdx +++ b/packages/web/src/content/docs/ko/plugins.mdx @@ -3,7 +3,7 @@ title: 플러그인 description: OpenCode를 확장하기 위해 자신만의 플러그인을 작성하세요. --- -플러그인은 다양한 이벤트와 사용자 정의 행동으로 후킹하여 opencode를 확장 할 수 있습니다. 플러그인을 만들 수 있습니다 새로운 기능을 추가, 외부 서비스와 통합, 또는 opencode의 기본 동작을 수정. +플러그인은 다양한 이벤트와 사용자 정의 행동으로 후킹하여 opencode를 확장 할 수 있습니다. 플러그인을 사용하여 새로운 기능을 추가하거나, 외부 서비스와 통합하거나, opencode의 기본 동작을 수정할 수 있습니다. 예를 들어, 커뮤니티에 의해 생성 된 [plugins](/docs/ecosystem#plugins)를 확인하십시오. @@ -11,18 +11,18 @@ description: OpenCode를 확장하기 위해 자신만의 플러그인을 작성 ## 플러그인 사용 -플러그인을로드하는 두 가지 방법이 있습니다. +플러그인을 로드하는 두 가지 방법이 있습니다. --- -## 로컬 파일에서 +### 로컬 파일에서 플러그인 디렉토리에 JavaScript 또는 TypeScript 파일을 배치합니다. - `.opencode/plugins/` - 프로젝트 레벨 플러그인 - `~/.config/opencode/plugins/` - 글로벌 플러그인 -이 디렉토리의 파일은 자동으로 시작에로드됩니다. +이 디렉토리의 파일은 시작 시 자동으로 로드됩니다. --- @@ -37,43 +37,42 @@ config 파일에 npm 패키지를 지정합니다. } ``` -일반 및 범위의 npm 패키지 모두 지원됩니다. +일반 패키지 및 스코프 npm 패키지 모두 지원됩니다. [ecosystem](/docs/ecosystem#plugins)에서 사용할 수 있는 플러그인을 찾아보세요. --- -## 플러그인이 설치되는 방법 +### 플러그인이 설치되는 방법 -**npm 플러그인**은 시작시 Bun을 사용하여 자동으로 설치됩니다. 패키지와 그들의 의존성은 `~/.cache/opencode/node_modules/`에서 캐시됩니다. +**npm 플러그인**은 시작시 Bun을 사용하여 자동으로 설치됩니다. 패키지와 그 의존성은 `~/.cache/opencode/node_modules/`에 캐시됩니다. -**로컬 플러그인**은 플러그인 디렉토리에서 직접로드됩니다. 외부 패키지를 사용하려면 구성 디렉토리 내 `package.json`를 작성해야 합니다 ([Dependencies](#dependencies)), 또는 플러그인을 npm에 게시하고 [config에 추가](/docs/config#plugins). +**로컬 플러그인**은 플러그인 디렉토리에서 직접 로드됩니다. 외부 패키지를 사용하려면 구성 디렉토리 내에 `package.json`을 작성해야 하거나([의존성](#의존성) 참조), 플러그인을 npm에 게시하고 [config에 추가](/docs/config#plugins)해야 합니다. --- -## 로드 순서 +### 로드 순서 -플러그인은 모든 소스에서로드되며 모든 후크는 순서대로 실행됩니다. 로드 순서는 다음과 같습니다: +플러그인은 모든 소스에서 로드되며 모든 후크는 순서대로 실행됩니다. 로드 순서는 다음과 같습니다: 1. 글로벌 구성 (`~/.config/opencode/opencode.json`) 2. 프로젝트 구성 (`opencode.json`) 3. 글로벌 플러그인 디렉토리 (`~/.config/opencode/plugins/`) 4. 프로젝트 플러그인 디렉토리 (`.opencode/plugins/`) -중복 npm 패키지는 한 번만 로드됩니다. 하지만, 로컬 플러그인과 같은 이름과 npm 플러그인은 모두 별도로로드됩니다. +중복된 이름과 버전의 npm 패키지는 한 번만 로드됩니다. 하지만 로컬 플러그인과 npm 플러그인의 이름이 비슷하더라도 둘 다 별도로 로드됩니다. --- ## 플러그인 만들기 -플러그인은 **JavaScript/TypeScript 모듈**입니다. -기능. 각 함수는 context 객체를 수신하고 Hooks 객체를 반환합니다. +플러그인은 하나 이상의 플러그인 함수를 내보내는 **JavaScript/TypeScript 모듈**입니다. 각 함수는 context 객체를 수신하고 hooks 객체를 반환합니다. --- ### 의존성 -로컬 플러그인 및 사용자 정의 도구는 외부 npm 패키지를 사용할 수 있습니다. `package.json`를 config 디렉토리에 추가하면 필요한 의존도가 있습니다. +로컬 플러그인 및 사용자 정의 도구는 외부 npm 패키지를 사용할 수 있습니다. config 디렉토리에 `package.json`을 추가하고 필요한 의존성을 명시하십시오. ```json title=".opencode/package.json" { @@ -83,7 +82,7 @@ config 파일에 npm 패키지를 지정합니다. } ``` -opencode는 `bun install`를 시작합니다. 플러그인 및 도구가 가져올 수 있습니다. +opencode는 시작 시 `bun install`을 실행하여 이를 설치합니다. 이후 플러그인 및 도구에서 가져올 수 있습니다. ```ts title=".opencode/plugins/my-plugin.ts" import { escape } from "shescape" @@ -113,19 +112,19 @@ export const MyPlugin = async ({ project, client, $, directory, worktree }) => { } ``` -플러그인 기능 수신: +플러그인 함수가 받는 인자: - `project`: 현재 프로젝트 정보. - `directory`: 현재 작업 디렉토리. - `worktree`: git worktree 경로. - `client`: AI와 상호 작용을 위한 opencode SDK 클라이언트. -- `$`: Bun's [shell API](https://bun.com/docs/runtime/shell) 명령어를 실행합니다. +- `$`: 명령어를 실행하기 위한 Bun의 [shell API](https://bun.com/docs/runtime/shell). --- ### TypeScript 지원 -TypeScript 플러그인의 경우 플러그인 패키지에서 유형을 가져올 수 있습니다. +TypeScript 플러그인의 경우 플러그인 패키지에서 타입을 가져올 수 있습니다. ```ts title="my-plugin.ts" {1} import type { Plugin } from "@opencode-ai/plugin" @@ -139,29 +138,29 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree --- -## 이벤트 +### 이벤트 -플러그인은 예제 섹션에서 아래에서 볼 때 이벤트에 가입 할 수 있습니다. 여기에 다른 이벤트의 목록입니다. +플러그인은 아래 예제 섹션에서 볼 수 있듯이 이벤트를 구독할 수 있습니다. 사용 가능한 이벤트 목록은 다음과 같습니다. -### 명령어 이벤트 +#### 명령어 이벤트 - `command.executed` -### 파일 이벤트 +#### 파일 이벤트 - `file.edited` - `file.watcher.updated` -### 설치 이벤트 +#### 설치 이벤트 - `installation.updated` -### LSP 이벤트 +#### LSP 이벤트 - `lsp.client.diagnostics` - `lsp.updated` -### 메시지 이벤트 +#### 메시지 이벤트 - `message.part.removed` - `message.part.updated` @@ -173,11 +172,11 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree - `permission.asked` - `permission.replied` -### 서버 이벤트 +#### 서버 이벤트 - `server.connected` -### 세션 이벤트 +#### 세션 이벤트 - `session.created` - `session.compacted` @@ -188,7 +187,7 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree - `session.status` - `session.updated` -### Todo 이벤트 +#### Todo 이벤트 - `todo.updated` @@ -196,7 +195,7 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree - `shell.env` -##### 도구 이벤트 +#### 도구 이벤트 - `tool.execute.after` - `tool.execute.before` @@ -211,11 +210,11 @@ export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree ## 예제 -opencode를 확장하기 위해 사용할 수있는 플러그인의 몇 가지 예입니다. +opencode를 확장하기 위해 사용할 수 있는 플러그인 예제입니다. --- -## 알림 보내기 +### 알림 보내기 특정 이벤트가 발생할 때 알림을 전송: @@ -232,7 +231,7 @@ export const NotificationPlugin = async ({ project, client, $, directory, worktr } ``` -macOS에서 AppleScript를 실행하려면 `osascript`를 사용하고 있습니다. 여기에 우리는 그것을 사용하여 알림을 보낼 수 있습니다. +macOS에서 AppleScript를 실행하기 위해 `osascript`를 사용하고 있습니다. 여기서는 알림을 보내는 데 사용합니다. :::note opencode 데스크톱 앱을 사용하는 경우 응답이 준비되어 있거나 세션 오류가 있을 때 시스템 알림을 자동으로 보낼 수 있습니다. @@ -242,7 +241,7 @@ opencode 데스크톱 앱을 사용하는 경우 응답이 준비되어 있거� ### .env 보호 -읽기 `.env` 파일에서 opencode를 방지하십시오: +opencode가 `.env` 파일을 읽지 못하도록 방지: ```javascript title=".opencode/plugins/env-protection.js" export const EnvProtection = async ({ project, client, $, directory, worktree }) => { @@ -260,7 +259,7 @@ export const EnvProtection = async ({ project, client, $, directory, worktree }) ### Inject 환경 변수 -환경 변수를 모든 shell 실행 (AI 도구 및 사용자 terminal)로 주사하십시오. +모든 shell 실행(AI 도구 및 사용자 terminal)에 환경 변수 주입: ```javascript title=".opencode/plugins/inject-env.js" export const InjectEnvPlugin = async () => { @@ -277,7 +276,7 @@ export const InjectEnvPlugin = async () => { ### 사용자 정의 도구 -플러그인은 opencode에 사용자 정의 도구를 추가 할 수 있습니다 : +플러그인은 opencode에 사용자 정의 도구를 추가할 수 있습니다: ```ts title=".opencode/plugins/custom-tools.ts" import { type Plugin, tool } from "@opencode-ai/plugin" @@ -300,13 +299,17 @@ export const CustomToolsPlugin: Plugin = async (ctx) => { } ``` -`tool` helper는 opencode가 호출 할 수있는 사용자 정의 도구를 만듭니다. Zod schema 기능을 가지고 도구 정의를 반환: +`tool` helper는 opencode가 호출할 수 있는 사용자 정의 도구를 만듭니다. Zod 스키마 함수를 받고 다음을 포함하는 도구 정의를 반환합니다: -- `description`: 도구는 무엇을 +- `description`: 도구가 하는 일 - `args`: 도구의 인수에 대한 Zod 스키마 -- `execute`: 도구가 호출될 때 실행되는 기능 +- `execute`: 도구가 호출될 때 실행되는 함수 -사용자 정의 도구는 내장 도구와 함께 opencode를 사용할 수 있습니다. +사용자 정의 도구는 내장 도구와 함께 opencode에서 사용할 수 있습니다. + +:::note +플러그인 도구가 내장 도구와 같은 이름을 사용하면 플러그인 도구가 우선순위를 갖습니다. +::: --- @@ -331,9 +334,9 @@ export const MyPlugin = async ({ client }) => { --- -## Compaction 훅 +### Compaction 훅 -세션이 압축 될 때 포함 된 컨텍스트를 사용자 지정: +세션이 압축될 때 포함되는 컨텍스트를 사용자 지정할 수 있습니다: ```ts title=".opencode/plugins/compaction.ts" import type { Plugin } from "@opencode-ai/plugin" @@ -355,9 +358,9 @@ Include any state that should persist across compaction: } ``` -LLM이 압축 요약을 생성하기 전에 `experimental.session.compacting` 훅이 실행됩니다. 기본 압축 프롬프트를 대체할 수 있도록 도메인 별 컨텍스트를 주입합니다. +`experimental.session.compacting` 훅은 LLM이 연속 요약을 생성하기 전에 실행됩니다. 기본 압축 프롬프트가 놓칠 수 있는 도메인별 컨텍스트를 주입하는 데 사용하세요. -당신은 또한 `output.prompt`를 조정해서 조밀함을 전적으로 대체할 수 있습니다: +또한 `output.prompt`를 설정하여 압축 프롬프트를 완전히 대체할 수도 있습니다: ```ts title=".opencode/plugins/custom-compaction.ts" import type { Plugin } from "@opencode-ai/plugin" @@ -382,4 +385,4 @@ Format as a structured prompt that a new agent can use to resume work. } ``` -`output.prompt`가 설정되면 완전히 기본 압축 프롬프트를 대체합니다. `output.context` 배열은 이 경우에 무시됩니다. +`output.prompt`가 설정되면 기본 압축 프롬프트를 완전히 대체합니다. 이 경우 `output.context` 배열은 무시됩니다. diff --git a/packages/web/src/content/docs/ko/providers.mdx b/packages/web/src/content/docs/ko/providers.mdx index ea48dbfb0..95b4907e2 100644 --- a/packages/web/src/content/docs/ko/providers.mdx +++ b/packages/web/src/content/docs/ko/providers.mdx @@ -3,7 +3,7 @@ title: 공급자 description: OpenCode에서 LLM 공급자를 사용합니다. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const console = config.console OpenCode는 [AI SDK](https://ai-sdk.dev/) 및 [Models.dev](https://models.dev)를 사용하여 **75개 이상의 LLM 공급자**를 지원하며 로컬 모델도 실행할 수 있습니다. @@ -22,13 +22,13 @@ OpenCode는 [AI SDK](https://ai-sdk.dev/) 및 [Models.dev](https://models.dev)� --- -#### 구성 +### 구성 OpenCode 설정의 `provider` 섹션을 통해 공급자를 사용자 정의할 수 있습니다. --- -### 기본 URL +#### 기본 URL `baseURL` 옵션을 설정하여 모든 공급자를 위한 기본 URL을 사용자 정의할 수 있습니다. 프록시 서비스 또는 사용자 정의 엔드포인트를 사용할 때 유용합니다. @@ -55,7 +55,38 @@ OpenCode Zen은 OpenCode 팀이 OpenCode와 잘 작동하도록 테스트하고 처음이라면 OpenCode Zen으로 시작하는 것이 좋습니다. ::: -1. TUI에서 `/connect` 명령을 실행하고 `opencode`를 선택한 뒤, [opencode.ai/auth](https://opencode.ai/auth)로 이동합니다. +1. TUI에서 `/connect` 명령을 실행하고 `OpenCode Zen`을 선택한 뒤, [opencode.ai/auth](https://opencode.ai/zen)로 이동합니다. + + ```txt + /connect + ``` + +2. 로그인하고 결제 정보를 입력한 후 API 키를 복사하십시오. + +3. API 키를 붙여넣습니다. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. TUI에서 `/models`를 실행하여 추천 모델 목록을 볼 수 있습니다. + + ```txt + /models + ``` + +OpenCode의 다른 공급자처럼 작동하며 사용은 완전히 선택 사항입니다. + +--- + +## OpenCode Go + +OpenCode Go는 OpenCode 팀이 테스트하고 검증하여 OpenCode와 잘 작동하는 인기 있는 오픈 코딩 모델에 안정적으로 액세스할 수 있는 저렴한 구독 요금제입니다. + +1. TUI에서 `/connect` 명령을 실행하고 `OpenCode Go`를 선택한 뒤 [opencode.ai/auth](https://opencode.ai/zen)로 이동하십시오. ```txt /connect @@ -129,15 +160,15 @@ OpenCode로 Amazon Bedrock을 사용하려면: Amazon Bedrock에서 원하는 모델에 대한 액세스 권한이 있어야 합니다. ::: -2. 다음 방법 중 하나를 사용하여 **설정**합니다: +2. 다음 방법 중 하나를 사용하여 **인증을 구성**합니다: ---- + *** -### 환경 변수 (빠른 시작) + #### 환경 변수 (빠른 시작) -OpenCode를 실행하는 동안 다음 환경 변수 중 하나를 설정합니다: + OpenCode를 실행하는 동안 다음 환경 변수 중 하나를 설정합니다: -```bash + ```bash # Option 1: Using AWS access keys AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode @@ -146,87 +177,84 @@ OpenCode를 실행하는 동안 다음 환경 변수 중 하나를 설정합니� # Option 3: Using Bedrock bearer token AWS_BEARER_TOKEN_BEDROCK=XXX opencode -``` + ``` -또는 bash 프로필에 추가합니다: + 또는 bash 프로필에 추가합니다: -```bash title="~/.bash_profile" + ```bash title="~/.bash_profile" export AWS_PROFILE=my-dev-profile export AWS_REGION=us-east-1 -``` - ---- - -#### 설정 파일 (권장) - -프로젝트별 또는 영구 구성을 위해 `opencode.json`을 사용하십시오. + ``` -```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "my-aws-profile" - } - } - } -} -``` + *** -**유효한 옵션:** + #### 구성 파일 (권장) -- `region` - AWS 리전 (예: `us-east-1`, `eu-west-1`) -- `profile` - `~/.aws/credentials`의 AWS 프로필 이름 -- `endpoint` - VPC 엔드포인트 등을 위한 사용자 정의 엔드포인트 URL (일반 `baseURL` 옵션의 별칭) + 프로젝트별 또는 영구 구성을 위해 `opencode.json`을 사용하십시오: - :::tip - 구성 파일 옵션은 환경 변수보다 우선 순위가 높습니다. - ::: + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "my-aws-profile" + } + } + } + } + ``` ---- + **유효한 옵션:** + - `region` - AWS 리전 (예: `us-east-1`, `eu-west-1`) + - `profile` - `~/.aws/credentials`의 AWS 프로필 이름 + - `endpoint` - VPC 엔드포인트 등을 위한 사용자 정의 엔드포인트 URL (일반 `baseURL` 옵션의 별칭) -#### 고급: VPC 엔드포인트 + :::tip + 구성 파일 옵션은 환경 변수보다 우선 순위가 높습니다. + ::: -Bedrock의 VPC 엔드포인트를 사용하는 경우: + *** -```json title="opencode.json" -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "amazon-bedrock": { - "options": { - "region": "us-east-1", - "profile": "production", - "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" - } - } - } -} -``` + #### 고급: VPC 엔드포인트 -:::note -`endpoint` 옵션은 일반적인 `baseURL` 옵션의 별칭입니다. `endpoint`와 `baseURL` 둘 다 지정된 경우 `endpoint`가 우선합니다. -::: + Bedrock의 VPC 엔드포인트를 사용하는 경우: ---- + ```json title="opencode.json" + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "amazon-bedrock": { + "options": { + "region": "us-east-1", + "profile": "production", + "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com" + } + } + } + } + ``` -#### 인증 방법 + :::note + `endpoint` 옵션은 일반적인 `baseURL` 옵션의 별칭입니다. `endpoint`와 `baseURL` 둘 다 지정된 경우 `endpoint`가 우선합니다. + ::: -- **`AWS_ACCESS_KEY_ID`/`AWS_SECRET_ACCESS_KEY`**: IAM 사용자 및 AWS 콘솔에서 액세스 키 생성 -- **`AWS_PROFILE`**: `~/.aws/credentials`의 프로필 이름을 사용합니다. `aws configure --profile my-profile` 또는 `aws sso login`으로 먼저 구성하십시오. -- **`AWS_BEARER_TOKEN_BEDROCK`**: Amazon Bedrock 콘솔에서 임시 API 키 생성 -- **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: EKS IRSA (서비스 계정용 IAM 역할) 또는 다른 Kubernetes 환경의 OIDC 연동. 이 환경 변수는 서비스 계정을 사용할 때 Kubernetes에 의해 자동으로 주입됩니다. + *** ---- + #### 인증 방법 + - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: IAM 사용자 및 AWS 콘솔에서 액세스 키 생성 + - **`AWS_PROFILE`**: `~/.aws/credentials`의 프로필 이름을 사용합니다. `aws configure --profile my-profile` 또는 `aws sso login`으로 먼저 구성하십시오. + - **`AWS_BEARER_TOKEN_BEDROCK`**: Amazon Bedrock 콘솔에서 임시 API 키 생성 + - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: EKS IRSA (서비스 계정용 IAM 역할) 또는 다른 Kubernetes 환경의 OIDC 연동. 이 환경 변수는 서비스 계정을 사용할 때 Kubernetes에 의해 자동으로 주입됩니다. -#### 인증 우선 순위 + *** -Amazon Bedrock은 다음과 같은 인증 우선 순위를 사용합니다. + #### 인증 우선 순위 -1. **Bearer Token** - `AWS_BEARER_TOKEN_BEDROCK` 환경 변수 또는 `/connect` 명령의 토큰 -2. **AWS Credential Chain** - 프로필, 액세스 키, 공유 자격 증명, IAM 역할, 웹 ID 토큰 (EKS IRSA), 인스턴스 메타데이터 + Amazon Bedrock은 다음과 같은 인증 우선 순위를 사용합니다. + 1. **Bearer Token** - `AWS_BEARER_TOKEN_BEDROCK` 환경 변수 또는 `/connect` 명령의 토큰 + 2. **AWS Credential Chain** - 프로필, 액세스 키, 공유 자격 증명, IAM 역할, 웹 ID 토큰 (EKS IRSA), 인스턴스 메타데이터 :::note Bearer 토큰을 설정할 때 (`/connect` 또는 `AWS_BEARER_TOKEN_BEDROCK`를 통해), 구성된 프로필을 포함한 모든 AWS 자격 증명 방법보다 우선 순위가 높습니다. @@ -260,7 +288,7 @@ Amazon Bedrock은 다음과 같은 인증 우선 순위를 사용합니다. --- -#### Anthropic +### Anthropic 1. 가입 후 `/connect` 명령을 실행하고 **Anthropic**을 선택합니다. @@ -268,7 +296,7 @@ Amazon Bedrock은 다음과 같은 인증 우선 순위를 사용합니다. /connect ``` -2. **Claude Pro/Max** 옵션을 선택하면 브라우저가 열립니다. +2. **Claude Pro/Max** 옵션을 선택하면 브라우저가 열리고 인증을 요청합니다. ```txt ┌ Select auth method @@ -300,7 +328,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 ### Azure OpenAI :::note -"I'm sorry, but I can't support that request" 오류가 발생하면, Azure 리소스의 콘텐츠 필터를 **DefaultV2**에서 **Default**로 변경해 보세요. +"I'm sorry, but I cannot assist with that request" 오류가 발생하면, Azure 리소스의 콘텐츠 필터를 **DefaultV2**에서 **Default**로 변경해 보세요. ::: 1. [Azure 포털](https://portal.azure.com/)로 이동하여 **Azure OpenAI** 리소스를 만듭니다. 다음이 필요합니다: @@ -395,7 +423,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 --- -#### Baseten +### Baseten 1. [Baseten](https://app.baseten.co/)으로 이동하여 계정을 만들고 API 키를 생성합니다. @@ -422,7 +450,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 --- -#### Cerebras +### Cerebras 1. [Cerebras 콘솔](https://inference.cerebras.ai/)로 이동하여 계정을 만들고 API 키를 생성합니다. @@ -441,7 +469,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 └ enter ``` -4. `/models` 명령을 실행하여 모델(예: Qwen 3 Coder 480B)을 선택하십시오. +4. `/models` 명령을 실행하여 모델(예: _Qwen 3 Coder 480B_)을 선택하십시오. ```txt /models @@ -449,7 +477,7 @@ Pro/Max 구독이 없는 경우 **Create an API Key**를 선택할 수 있습니 --- -## Cloudflare AI Gateway +### Cloudflare AI Gateway Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세스할 수 있으며, 통합된 엔드포인트를 통해 더 많은 기능을 제공합니다. [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/)을 사용하면 각 공급자의 별도 API 키가 필요하지 않습니다. @@ -507,7 +535,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� --- -#### Cortecs +### Cortecs 1. [Cortecs 콘솔](https://cortecs.ai/)로 이동하여 계정을 만들고 API 키를 생성합니다. @@ -526,7 +554,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� └ enter ``` -4. `/models` 명령을 실행하여 모델(예: Kimi K2 Instruct)을 선택하십시오. +4. `/models` 명령을 실행하여 모델(예: _Kimi K2 Instruct_)을 선택하십시오. ```txt /models @@ -534,7 +562,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� --- -## DeepSeek +### DeepSeek 1. [DeepSeek 콘솔](https://platform.deepseek.com/)로 이동하여 계정을 만들고 **API Keys**를 클릭하여 키를 생성합니다. @@ -553,7 +581,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� └ enter ``` -4. `/models` 명령을 실행하여 DeepSeek 모델(예: DeepSeek Reasoner)을 선택하십시오. +4. `/models` 명령을 실행하여 DeepSeek 모델(예: _DeepSeek Reasoner_)을 선택하십시오. ```txt /models @@ -561,7 +589,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� --- -## Deep Infra +### Deep Infra 1. [Deep Infra 대시보드](https://deepinfra.com/dash)로 이동하여 계정을 만들고 API 키를 생성합니다. @@ -588,7 +616,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� --- -## Firmware +### Firmware 1. [Firmware 대시보드](https://app.firmware.ai/signup)로 이동하여 계정을 만들고 API 키를 생성합니다. @@ -615,7 +643,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� --- -## Fireworks AI +### Fireworks AI 1. [Fireworks AI 콘솔](https://app.fireworks.ai/)로 이동하여 계정을 만들고 **API Keys**를 클릭합니다. @@ -634,7 +662,7 @@ Cloudflare AI Gateway는 OpenAI, Anthropic, Workers AI 등의 모델에 액세� └ enter ``` -4. `/models` 명령을 실행하여 모델(예: Kimi K2 Instruct)을 선택하십시오. +4. `/models` 명령을 실행하여 모델(예: _Kimi K2 Instruct_)을 선택하십시오. ```txt /models @@ -662,38 +690,33 @@ GitLab Duo는 GitLab의 Anthropic 프록시를 통해 기본 도구 호출 기� └ ``` -#### OAuth 사용 (권장) - -**OAuth**를 선택하면 브라우저에서 권한 부여를 요청합니다. - ---- + #### OAuth 사용 (권장) -### 개인 액세스 토큰 사용 + **OAuth**를 선택하면 브라우저가 열리고 인증을 요청합니다. -1. [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)로 이동 -2. 새 토큰 추가 -3. 이름: `OpenCode`, 범위: `api` -4. 토큰 복사 (`glpat-`로 시작) -5. 터미널에 입력하십시오. + #### 개인 액세스 토큰 사용 + 1. [GitLab User Settings > Access Tokens](https://gitlab.com/-/user_settings/personal_access_tokens)로 이동 + 2. **Add new token** 클릭 + 3. 이름: `OpenCode`, 범위: `api` + 4. 토큰 복사 (`glpat-`로 시작) + 5. 터미널에 입력 -6. 사용 가능한 모델을 보려면 `/models` 명령을 실행하십시오. +3. `/models` 명령을 실행하여 사용 가능한 모델을 확인하십시오. ```txt /models ``` -세 가지 Claude 기반 모델을 사용할 수 있습니다: - -- **duo-chat-haiku-4-5** (기본값) - 빠른 작업을 위한 빠른 응답 -- **duo-chat-sonnet-4-5** - 대부분의 워크플로우에 균형 잡힌 성능 -- **duo-chat-opus-4-5** - 복잡한 분석 가능 + 세 가지 Claude 기반 모델을 사용할 수 있습니다: + - **duo-chat-haiku-4-5** (기본값) - 빠른 작업을 위한 빠른 응답 + - **duo-chat-sonnet-4-5** - 대부분의 워크플로우에 균형 잡힌 성능 + - **duo-chat-opus-4-5** - 복잡한 분석에 적합 :::note -`GITLAB_TOKEN` 환경 변수를 지정할 수도 있습니다. -OpenCode는 인증 저장소에 토큰을 저장합니다. +`GITLAB_TOKEN` 환경 변수를 지정하여 토큰을 저장하지 않고 사용할 수도 있습니다. ::: -#### 셀프 호스팅 GitLab (Self-Hosted) +#### 셀프 호스팅 GitLab :::note[규정 준수 참고 사항] OpenCode는 세션 제목 생성과 같은 일부 AI 작업을 위해 작은 모델을 사용합니다. @@ -711,7 +734,7 @@ OpenCode를 자체 호스팅 GitLab 인스턴스만 사용하도록 제한하려 ::: -자체 호스팅 GitLab 인스턴스: +자체 호스팅 GitLab 인스턴스의 경우: ```bash export GITLAB_INSTANCE_URL=https://gitlab.company.com @@ -721,7 +744,7 @@ export GITLAB_TOKEN=glpat-... 인스턴스가 사용자 정의 AI Gateway를 실행하는 경우: ```bash -export GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com +GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com ``` 또는 bash 프로필에 추가: @@ -737,19 +760,18 @@ GitLab 관리자는 다음을 활성화해야 합니다: 1. [Duo Agent Platform](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) (사용자, 그룹 또는 인스턴스) 2. 기능 플래그 (Rails 콘솔을 통해): - -- `agent_platform_claude_code` -- `third_party_agents_enabled` - ::: + - `agent_platform_claude_code` + - `third_party_agents_enabled` + ::: #### 셀프 호스팅 인스턴스용 OAuth 자체 호스팅 인스턴스에 대해 OAuth를 작동시키려면 새로운 애플리케이션(Settings → Applications)을 만들어야 합니다. 콜백 URL `http://127.0.0.1:8080/callback` 및 다음 범위가 필요합니다: -- `api` (사용자 대신 API 액세스) -- `read_user` (개인 정보 읽기) -- `read_repository` (리포지토리 읽기 전용 액세스) +- api (사용자 대신 API 액세스) +- read_user (개인 정보 읽기) +- read_repository (리포지토리 읽기 전용 액세스) 그런 다음 애플리케이션 ID를 환경 변수로 노출하십시오: @@ -759,7 +781,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth) 홈페이지에 추가 문서가 있습니다. -##### 구성 +#### 구성 `opencode.json`을 통해 사용자 정의: @@ -780,7 +802,7 @@ export GITLAB_OAUTH_CLIENT_ID=your_application_id_here } ``` -##### GitLab API 도구 (선택 사항이지만 강력 권장) +#### GitLab API 도구 (선택 사항이지만 강력 권장) GitLab 도구(병합 요청, 이슈, 파이프라인, CI/CD 등)에 액세스하려면: @@ -797,13 +819,10 @@ GitLab 도구(병합 요청, 이슈, 파이프라인, CI/CD 등)에 액세스하 ### GitHub Copilot -GitHub Copilot 구독을 사용하여 opencode: +OpenCode에서 GitHub Copilot 구독을 사용하려면: :::note -몇몇 모형은 [Pro+를 필요로 할지도 모릅니다 -구독](https://github.com/features/copilot/plans) 사용. - -일부 모델은 수동으로 활성화해야합니다 [GitHub Copilot 설정](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use). +일부 모델은 [Pro+ 구독](https://github.com/features/copilot/plans)이 필요할 수 있습니다. ::: 1. `/connect` 명령을 실행하고 GitHub Copilot을 검색하십시오. @@ -821,7 +840,8 @@ GitHub Copilot 구독을 사용하여 opencode: │ │ Enter code: 8F43-6FCF │ - └ Waiting for authorization... + │ Waiting for authorization... + └ ``` 3. 이제 원하는 모델을 선택하기 위해 `/models` 명령을 실행합니다. @@ -832,44 +852,42 @@ GitHub Copilot 구독을 사용하여 opencode: --- -### 구글 Vertex AI +### Google Vertex AI -opencode로 Google Vertex AI를 사용하려면: +OpenCode로 Google Vertex AI를 사용하려면: -1. Google Cloud Console에서 ** Model Garden**을 통해 헤드를 확인하고 확인하십시오. - 당신의 지역에서 유효한 모형. +1. Google Cloud Console의 **Model Garden**으로 이동하여 해당 리전에서 사용 가능한 모델을 확인하십시오. :::note - Vertex AI API를 사용하여 Google Cloud 프로젝트를 수행해야합니다. + Vertex AI API가 활성화된 Google Cloud 프로젝트가 있어야 합니다. ::: 2. 필요한 환경 변수를 설정: + - `GOOGLE_CLOUD_PROJECT`: 구글 클라우드 프로젝트 ID + - `VERTEX_LOCATION` (선택): Vertex AI 리전 (기본값: `global`) + - 인증 (하나 선택): + - `GOOGLE_APPLICATION_CREDENTIALS`: 서비스 계정 JSON 키 파일 경로 + - gcloud CLI 사용: `gcloud auth application-default login` -- `GOOGLE_CLOUD_PROJECT`: 당신의 구글 클라우드 프로젝트 ID -- `VERTEX_LOCATION` (선택): Vertex AI를 위한 지구 (`global`에 기본) -- 인증(초당): -- `GOOGLE_APPLICATION_CREDENTIALS`: 서비스 계정 JSON 키 파일 경로 -- gcloud CLI를 사용하여 인증 : `gcloud auth application-default login` + OpenCode를 실행할 때 설정: -opencode를 실행하면서 설정한다. - -```bash + ```bash GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode -``` + ``` -또는 bash 프로파일에 추가하십시오. + 또는 bash 프로필에 추가: -```bash title="~/.bash_profile" + ```bash title="~/.bash_profile" export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json export GOOGLE_CLOUD_PROJECT=your-project-id export VERTEX_LOCATION=global -``` + ``` :::tip -`global` 지구는 가용성을 개량하고 추가 비용 없이 과실을 감소시킵니다. 데이터 거주 요건에 대한 지역 엔드포인트(e.g., `us-central1`)를 사용하십시오. [더 알아보기](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional and global endpoints) +`global` 리전은 가용성을 높이고 오류를 줄이며 추가 비용이 없습니다. 데이터 거주 요건이 있는 경우 지역 엔드포인트(예: `us-central1`)를 사용하십시오. [더 알아보기](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints) ::: -3. 당신이 원하는 모형을 선정하기 위하여 `/models` 명령을 실행하십시오. +3. `/models` 명령을 실행하여 원하는 모델을 선택하십시오. ```txt /models @@ -877,17 +895,17 @@ opencode를 실행하면서 설정한다. --- -##### Groq +### Groq -1. [Groq 콘솔](https://console.groq.com/)에 머리, click **Create API Key**, 키 복사. +1. [Groq 콘솔](https://console.groq.com/)로 이동하여 **Create API Key**를 클릭하고 키를 복사합니다. -2. `/connect` 명령을 실행하고 Groq에 대한 검색. +2. `/connect` 명령을 실행하고 Groq를 검색하십시오. ```txt /connect ``` -3. 공급자를 위한 API 열쇠를 입력하십시오. +3. API 키를 입력하십시오. ```txt ┌ API key @@ -896,7 +914,7 @@ opencode를 실행하면서 설정한다. └ enter ``` -4. `/models` 명령을 실행하여 원하는 것을 선택합니다. +4. `/models` 명령을 실행하여 원하는 모델을 선택합니다. ```txt /models @@ -906,9 +924,9 @@ opencode를 실행하면서 설정한다. ### Hugging Face -[Hugging Face Inference Provider](https://huggingface.co/docs/inference-providers)는 17+ 공급자가 지원하는 오픈 모델에 대한 액세스를 제공합니다. +[Hugging Face Inference Providers](https://huggingface.co/docs/inference-providers)는 17개 이상의 공급자가 지원하는 오픈 모델에 대한 액세스를 제공합니다. -1. [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained)를 통해 토큰을 Inference Provider에게 호출할 권한을 부여합니다. +1. [Hugging Face settings](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained)로 이동하여 Inference Providers에 호출할 권한이 있는 토큰을 생성합니다. 2. `/connect` 명령을 실행하고 **Hugging Face**를 검색하십시오. @@ -925,7 +943,7 @@ opencode를 실행하면서 설정한다. └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Kimi-K2-Instruct 또는 GLM-4.6 . +4. `/models` 명령을 실행하여 모델(예: _Kimi-K2-Instruct_ 또는 _GLM-4.6_)을 선택하십시오. ```txt /models @@ -935,17 +953,17 @@ opencode를 실행하면서 설정한다. ### Helicone -[Helicone](https://helicone.ai)는 AI 애플리케이션에 대한 로깅, 모니터링 및 분석 기능을 제공하는 LLM Observability 플랫폼입니다. Helicone AI Gateway는 모델을 기반으로 적절한 공급자에게 요청을 자동으로 전달합니다. +[Helicone](https://helicone.ai)는 AI 애플리케이션을 위한 로깅, 모니터링 및 분석 기능을 제공하는 LLM 관찰 가능성(Observability) 플랫폼입니다. Helicone AI Gateway는 모델을 기반으로 적절한 공급자에게 요청을 자동으로 라우팅합니다. -1. [Helicone](https://helicone.ai)에 머리, 계정을 만들고, 대시보드에서 API 키를 생성합니다. +1. [Helicone](https://helicone.ai)로 이동하여 계정을 만들고 대시보드에서 API 키를 생성합니다. -2. `/connect` 명령을 실행하고 ** Helicone**를 검색하십시오. +2. `/connect` 명령을 실행하고 **Helicone**를 검색하십시오. ```txt /connect ``` -3. Helicone API 열쇠를 입력하십시오. +3. Helicone API 키를 입력하십시오. ```txt ┌ API key @@ -954,19 +972,19 @@ opencode를 실행하면서 설정한다. └ enter ``` -4. 모델을 선택하려면 `/models` 명령을 실행하십시오. +4. `/models` 명령을 실행하여 모델을 선택하십시오. ```txt /models ``` -캐싱 및 속도 제한과 같은 더 많은 공급자와 고급 기능을 위해 [Helicone 문서](https://docs.helicone.ai)를 확인하십시오. +캐싱 및 속도 제한과 같은 더 많은 공급자와 고급 기능은 [Helicone 문서](https://docs.helicone.ai)를 확인하십시오. -#### 선택 사항 +#### 선택적 구성 -이벤트에서 opencode를 통해 자동으로 구성되지 않는 Helicone의 기능 또는 모델을 볼 수 있습니다. +OpenCode를 통해 자동으로 구성되지 않는 Helicone의 기능이나 모델이 있는 경우 직접 구성할 수 있습니다. -여기에 [Helicone의 모델 디렉토리](https://helicone.ai/models), 당신은 당신이 추가 할 모델의 ID를 잡아이 필요. +[Helicone의 모델 디렉토리](https://helicone.ai/models)에서 추가하려는 모델의 ID를 확인하십시오. ```jsonc title="~/.config/opencode/opencode.jsonc" { @@ -992,7 +1010,7 @@ opencode를 실행하면서 설정한다. } ``` -##### 사용자 정의 헤더 +#### 사용자 정의 헤더 Helicone는 캐싱, 사용자 추적 및 세션 관리와 같은 기능을 위한 사용자 정의 헤더를 지원합니다. `options.headers`를 사용하여 공급자 구성에 추가하십시오: @@ -1017,7 +1035,7 @@ Helicone는 캐싱, 사용자 추적 및 세션 관리와 같은 기능을 위� ##### 세션 추적 -Helicone's [Sessions](https://docs.helicone.ai/features/sessions) 기능으로 그룹 관련 LLM 요청이 가능합니다. [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) 플러그인을 사용하여 각 opencode 대화를 Helicone 세션으로 자동 로그인하십시오. +Helicone의 [Sessions](https://docs.helicone.ai/features/sessions) 기능을 사용하면 관련 LLM 요청을 그룹화할 수 있습니다. [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session) 플러그인을 사용하여 각 OpenCode 대화를 Helicone 세션으로 자동 기록하십시오. ```bash npm install -g opencode-helicone-session @@ -1031,24 +1049,24 @@ npm install -g opencode-helicone-session } ``` -플러그인은 `Helicone-Session-Id` 및 `Helicone-Session-Name` 헤더를 귀하의 요청에 주사합니다. Helicone의 세션 페이지에서는 별도의 세션으로 나열된 각 opencode 대화를 볼 수 있습니다. +이 플러그인은 `Helicone-Session-Id` 및 `Helicone-Session-Name` 헤더를 요청에 주입합니다. Helicone의 세션 페이지에서 각 OpenCode 대화가 별도의 세션으로 나열되는 것을 볼 수 있습니다. -###### 공통 Helicone 헤더 +##### 공통 Helicone 헤더 -| 헤드러 | Description | +| 헤더 | 설명 | | -------------------------- | ---------------------------------------------------------- | -| `Helicone-Cache-Enabled` | 대응 캐싱 (`true`/`false`) | -| `Helicone-User-Id` | 사용자별 추적 가능 | +| `Helicone-Cache-Enabled` | 응답 캐싱 활성화 (`true`/`false`) | +| `Helicone-User-Id` | 사용자별 지표 추적 | | `Helicone-Property-[Name]` | 사용자 정의 속성 추가(예: `Helicone-Property-Environment`) | -| `Helicone-Prompt-Id` | prompt 대응 | +| `Helicone-Prompt-Id` | 요청을 프롬프트 버전과 연관 | -모든 사용 가능한 헤더에 대한 [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory)를 참조하십시오. +사용 가능한 모든 헤더는 [Helicone Header Directory](https://docs.helicone.ai/helicone-headers/header-directory)를 참조하십시오. --- -#### llama.cpp +### llama.cpp -[llama.cpp's](https://github.com/ggml-org/llama.cpp) llama-server 유틸리티를 통해 로컬 모델을 사용할 수 있습니다. +[llama.cpp](https://github.com/ggml-org/llama.cpp)의 llama-server 유틸리티를 통해 로컬 모델을 사용하도록 구성할 수 있습니다. ```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15} { @@ -1076,21 +1094,21 @@ npm install -g opencode-helicone-session 이 예제에서: -- `llama.cpp`는 주문 공급자 ID입니다. 원하는 문자열이 될 수 있습니다. -- `npm`는 이 공급자를 위해 사용할 포장을 지정합니다. 여기, `@ai-sdk/openai-compatible`는 OpenAI 호환 API에 사용됩니다. -- `name`는 UI에 있는 공급자를 위한 전시 이름입니다. -- `options.baseURL`는 로컬 서버의 엔드포인트입니다. -- `models`는 모델 ID를 구성하는 맵입니다. 모델 이름은 모델 선택 목록에 표시됩니다. +- `llama.cpp`는 사용자 정의 공급자 ID입니다. 원하는 문자열로 지정할 수 있습니다. +- `npm`은 이 공급자에 사용할 패키지를 지정합니다. 여기서는 OpenAI 호환 API를 위해 `@ai-sdk/openai-compatible`을 사용합니다. +- `name`은 UI에 표시될 공급자 이름입니다. +- `options.baseURL`은 로컬 서버의 엔드포인트입니다. +- `models`는 모델 ID와 해당 구성을 매핑합니다. 모델 이름은 모델 선택 목록에 표시됩니다. --- -###### IO.NET +### IO.NET IO.NET은 다양한 사용 사례에 최적화된 17개의 모델을 제공합니다: -1. [IO.NET 콘솔](https://ai.io.net/)에 머리, 계정을 만들고 API 키를 생성합니다. +1. [IO.NET 콘솔](https://ai.io.net/)로 이동하여 계정을 만들고 API 키를 생성합니다. -2. `/connect` 명령을 실행하고 **IO.NET**를 검색하십시오. +2. `/connect` 명령을 실행하고 **IO.NET**을 검색하십시오. ```txt /connect @@ -1115,7 +1133,7 @@ IO.NET은 다양한 사용 사례에 최적화된 17개의 모델을 제공합� ### LM Studio -LM Studio를 통해 로컬 모델을 사용할 수 있습니다. +LM Studio를 통해 로컬 모델을 사용하도록 구성할 수 있습니다. ```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14} { @@ -1139,19 +1157,19 @@ LM Studio를 통해 로컬 모델을 사용할 수 있습니다. 이 예제에서: -- `lmstudio`는 주문 공급자 ID입니다. 원하는 문자열이 될 수 있습니다. -- `npm`는 이 공급자를 위해 사용할 포장을 지정합니다. 여기, `@ai-sdk/openai-compatible`는 OpenAI 호환 API에 사용됩니다. -- `name`는 UI에 있는 공급자를 위한 전시 이름입니다. -- `options.baseURL`는 로컬 서버의 엔드포인트입니다. -- `models`는 모델 ID를 구성하는 맵입니다. 모델 이름은 모델 선택 목록에 표시됩니다. +- `lmstudio`는 사용자 정의 공급자 ID입니다. 원하는 문자열로 지정할 수 있습니다. +- `npm`은 이 공급자에 사용할 패키지를 지정합니다. 여기서는 OpenAI 호환 API를 위해 `@ai-sdk/openai-compatible`을 사용합니다. +- `name`은 UI에 표시될 공급자 이름입니다. +- `options.baseURL`은 로컬 서버의 엔드포인트입니다. +- `models`는 모델 ID와 해당 구성을 매핑합니다. 모델 이름은 모델 선택 목록에 표시됩니다. --- -## Moonshot AI +### Moonshot AI -Moonshot AI에서 Kimi K2 사용 : +Moonshot AI에서 Kimi K2를 사용하려면: -1. [Moonshot AI 콘솔](https://platform.moonshot.ai/console)에 머리, 계정을 만들고, ** API 키**를 클릭합니다. +1. [Moonshot AI 콘솔](https://platform.moonshot.ai/console)로 이동하여 계정을 만들고 **Create API key**를 클릭합니다. 2. `/connect` 명령을 실행하고 **Moonshot AI**를 검색하십시오. @@ -1168,7 +1186,7 @@ Moonshot AI에서 Kimi K2 사용 : └ enter ``` -4. `/models` 명령을 실행하여 Kimi K2 . +4. `/models` 명령을 실행하여 *Kimi K2*를 선택하십시오. ```txt /models @@ -1176,9 +1194,9 @@ Moonshot AI에서 Kimi K2 사용 : --- -## MiniMax +### MiniMax -1. [MiniMax API 콘솔](https://platform.minimax.io/login)에 머리, 계정을 만들고 API 키를 생성합니다. +1. [MiniMax API 콘솔](https://platform.minimax.io/login)로 이동하여 계정을 만들고 API 키를 생성합니다. 2. `/connect` 명령을 실행하고 **MiniMax**를 검색하십시오. @@ -1195,7 +1213,7 @@ Moonshot AI에서 Kimi K2 사용 : └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 M2.1 . +4. `/models` 명령을 실행하여 모델(예: _M2.1_)을 선택하십시오. ```txt /models @@ -1203,9 +1221,9 @@ Moonshot AI에서 Kimi K2 사용 : --- -## Nebius Token Factory +### Nebius Token Factory -1. [Nebius Token Factory 콘솔](https://tokenfactory.nebius.com/)에 머리, 계정을 만들고, ** 키 추가 **. +1. [Nebius Token Factory 콘솔](https://tokenfactory.nebius.com/)로 이동하여 계정을 만들고 **Add Key**를 클릭합니다. 2. `/connect` 명령을 실행하고 **Nebius Token Factory**를 검색하십시오. @@ -1213,7 +1231,7 @@ Moonshot AI에서 Kimi K2 사용 : /connect ``` -3. Nebius 토큰 공장 API 키를 입력하십시오. +3. Nebius Token Factory API 키를 입력하십시오. ```txt ┌ API key @@ -1222,7 +1240,7 @@ Moonshot AI에서 Kimi K2 사용 : └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Kimi K2 Instruct . +4. `/models` 명령을 실행하여 모델(예: _Kimi K2 Instruct_)을 선택하십시오. ```txt /models @@ -1230,12 +1248,12 @@ Moonshot AI에서 Kimi K2 사용 : --- -#### Ollama +### Ollama -Ollama를 통해 로컬 모델을 사용할 수 있습니다. +Ollama를 통해 로컬 모델을 사용하도록 구성할 수 있습니다. :::tip -Ollama는 opencode를 자동으로 구성할 수 있습니다. 자세한 내용은 [Ollama 통합 문서](https://docs.ollama.com/integrations/opencode)를 참조하십시오. +Ollama는 OpenCode에 대해 자동으로 구성될 수 있습니다. 자세한 내용은 [Ollama 통합 문서](https://docs.ollama.com/integrations/opencode)를 참조하십시오. ::: ```json title="opencode.json" "ollama" {5, 6, 8, 10-14} @@ -1260,35 +1278,35 @@ Ollama는 opencode를 자동으로 구성할 수 있습니다. 자세한 내용� 이 예제에서: -- `ollama`는 주문 공급자 ID입니다. 원하는 문자열이 될 수 있습니다. -- `npm`는 이 공급자를 위해 사용할 포장을 지정합니다. 여기, `@ai-sdk/openai-compatible`는 OpenAI 호환 API에 사용됩니다. -- `name`는 UI에 있는 공급자를 위한 전시 이름입니다. -- `options.baseURL`는 로컬 서버의 엔드포인트입니다. -- `models`는 모델 ID를 구성하는 맵입니다. 모델 이름은 모델 선택 목록에 표시됩니다. +- `ollama`는 사용자 정의 공급자 ID입니다. 원하는 문자열로 지정할 수 있습니다. +- `npm`은 이 공급자에 사용할 패키지를 지정합니다. 여기서는 OpenAI 호환 API를 위해 `@ai-sdk/openai-compatible`을 사용합니다. +- `name`은 UI에 표시될 공급자 이름입니다. +- `options.baseURL`은 로컬 서버의 엔드포인트입니다. +- `models`는 모델 ID와 해당 구성을 매핑합니다. 모델 이름은 모델 선택 목록에 표시됩니다. :::tip -도구 호출이 작동하지 않는 경우, Ollama에서 `num_ctx` 증가. 주위 시작 16k - 32k. +도구 호출이 작동하지 않는 경우, Ollama에서 `num_ctx`를 늘려보십시오. 16k - 32k 정도에서 시작하십시오. ::: --- -## Ollama Cloud +### Ollama Cloud -opencode로 Ollama Cloud를 사용하려면: +OpenCode로 Ollama Cloud를 사용하려면: -1. [https://ollama.com/](https://ollama.com/) 이상 머리와 로그인하거나 계정을 만들 수 있습니다. +1. [https://ollama.com/](https://ollama.com/)으로 이동하여 로그인하거나 계정을 만듭니다. -2. Navigate to**Settings** > **Keys** 및 click **API Key**를 추가하여 새로운 API 키 생성. +2. **Settings** > **Keys**로 이동하여 **Add API Key**를 클릭해 새 API 키를 생성합니다. -3. opencode에서 사용을 위한 API 열쇠를 복사하십시오. +3. OpenCode에서 사용할 API 키를 복사합니다. -4. `/connect` 명령을 실행하고 ** Ollama Cloud**를 검색하십시오. +4. `/connect` 명령을 실행하고 **Ollama Cloud**를 검색하십시오. ```txt /connect ``` -5. Ollama Cloud API 키 입력. +5. Ollama Cloud API 키를 입력하십시오. ```txt ┌ API key @@ -1297,7 +1315,7 @@ opencode로 Ollama Cloud를 사용하려면: └ enter ``` -6. ** 중요 **: opencode의 클라우드 모델을 사용하기 전에, 로컬 모델 정보를 끌어야 합니다: +6. **중요**: OpenCode에서 클라우드 모델을 사용하기 전에, 로컬에서 모델 정보를 가져와야 합니다: ```bash ollama pull gpt-oss:20b-cloud @@ -1315,14 +1333,13 @@ opencode로 Ollama Cloud를 사용하려면: [ChatGPT Plus 또는 Pro](https://chatgpt.com/pricing)에 가입하는 것이 좋습니다. -1. 가입하면 `/connect` 명령을 실행하고 OpenAI를 선택하십시오. +1. 가입 후 `/connect` 명령을 실행하고 OpenAI를 선택하십시오. ```txt /connect ``` -2. **ChatGPT Plus/Pro** 옵션을 선택하고 브라우저를 열 수 있습니다. - 자주 묻는 질문 +2. **ChatGPT Plus/Pro** 옵션을 선택하면 브라우저가 열리고 인증을 요청합니다. ```txt ┌ Select auth method @@ -1332,7 +1349,7 @@ opencode로 Ollama Cloud를 사용하려면: └ ``` -3. 이제 모든 OpenAI 모델은 `/models` 명령을 사용할 때 사용할 수 있어야합니다. +3. 이제 `/models` 명령을 사용할 때 모든 OpenAI 모델을 사용할 수 있습니다. ```txt /models @@ -1340,23 +1357,23 @@ opencode로 Ollama Cloud를 사용하려면: ##### API 키 사용 -API 키가 이미 있다면 ** 수동으로 API 키**를 입력하고 terminal에서 붙여넣을 수 있습니다. +이미 API 키가 있다면 **Manually enter API Key**를 선택하고 터미널에 붙여넣을 수 있습니다. --- -## OpenCode Zen +### OpenCode Zen -OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 목록입니다. [더 알아보기](/docs/zen). +OpenCode Zen은 OpenCode 팀에서 제공하는 테스트 및 검증된 모델 목록입니다. [더 알아보기](/docs/zen). -1. 로그인 **<a href={console}>OpenCode Zen</a>** and click**Create API Key**. +1. **<a href={console}>OpenCode Zen</a>**에 로그인하고 **Create API Key**를 클릭합니다. -2. `/connect` 명령을 실행하고 **OpenCode Zen**를 검색하십시오. +2. `/connect` 명령을 실행하고 **OpenCode Zen**을 검색하십시오. ```txt /connect ``` -3. opencode API 키를 입력하십시오. +3. OpenCode API 키를 입력하십시오. ```txt ┌ API key @@ -1365,7 +1382,7 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 � └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Qwen 3 Coder 480B . +4. `/models` 명령을 실행하여 모델(예: _Qwen 3 Coder 480B_)을 선택하십시오. ```txt /models @@ -1373,9 +1390,9 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 � --- -## OpenRouter +### OpenRouter -1. [OpenRouter 대시보드](https://openrouter.ai/settings/keys)에 머리, click ** API Key**를 클릭하고 키를 복사합니다. +1. [OpenRouter 대시보드](https://openrouter.ai/settings/keys)로 이동하여 **Create API Key**를 클릭하고 키를 복사합니다. 2. `/connect` 명령을 실행하고 OpenRouter를 검색하십시오. @@ -1383,7 +1400,7 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 � /connect ``` -3. 공급자를 위한 API 열쇠를 입력하십시오. +3. API 키를 입력하십시오. ```txt ┌ API key @@ -1392,28 +1409,28 @@ OpenCode Zen은 opencode 팀에서 제공하는 테스트 및 검증된 모델 � └ enter ``` -4. 많은 OpenRouter 모델은 기본적으로 `/models` 명령을 실행하여 원하는 것을 선택합니다. +4. 많은 OpenRouter 모델은 기본적으로 미리 로드되어 있으므로 `/models` 명령을 실행하여 원하는 것을 선택하십시오. ```txt /models ``` -opencode config를 통해 추가 모델을 추가할 수 있습니다. + OpenCode 구성을 통해 모델을 추가할 수도 있습니다. -```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "openrouter": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + ```json title="opencode.json" {6} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "openrouter": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` -5. 당신은 또한 당신의 opencode config를 통해 그들을 주문을 받아서 만들 수 있습니다. 공급자 지정의 예입니다. +5. 또한 OpenCode 구성을 통해 사용자 정의할 수도 있습니다. 다음은 공급자 순서를 지정하는 예입니다. ```json title="opencode.json" { @@ -1439,12 +1456,12 @@ opencode config를 통해 추가 모델을 추가할 수 있습니다. ### SAP AI Core -SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ 모델에 대한 액세스를 제공합니다. +SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40개 이상의 모델에 대한 액세스를 제공합니다. -1. [SAP BTP Cockpit](https://account.hana.ondemand.com/)로 이동하여 SAP AI Core 서비스 인스턴스로 이동하고 서비스 키를 만듭니다. +1. [SAP BTP Cockpit](https://account.hana.ondemand.com/)으로 이동하여 SAP AI Core 서비스 인스턴스로 이동하고 서비스 키를 만듭니다. :::tip - 서비스 키는 `clientid`, `clientsecret`, `url` 및 `serviceurls.AI_API_URL`를 포함하는 JSON 객체입니다. **Services** > **Instances 및 Subscriptions** 아래 AI Core 인스턴스를 찾을 수 있습니다. + 서비스 키는 `clientid`, `clientsecret`, `url` 및 `serviceurls.AI_API_URL`을 포함하는 JSON 객체입니다. **Services** > **Instances and Subscriptions** 아래에서 AI Core 인스턴스를 찾을 수 있습니다. ::: 2. `/connect` 명령을 실행하고 **SAP AI Core**를 검색하십시오. @@ -1462,29 +1479,29 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ └ enter ``` -또는 `AICORE_SERVICE_KEY` 환경 변수를 설정: + 또는 `AICORE_SERVICE_KEY` 환경 변수를 설정합니다: -```bash + ```bash AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode -``` + ``` -또는 bash 프로파일에 추가: + 또는 bash 프로필에 추가합니다: -```bash title="~/.bash_profile" + ```bash title="~/.bash_profile" export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' -``` + ``` -4. 선택적으로 배치 ID 및 자원 그룹: +4. 선택적으로 배포 ID 및 리소스 그룹을 설정합니다: ```bash AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode ``` :::note - 이 설정은 선택 사항이며 SAP AI Core 설정에 따라 구성해야합니다. + 이 설정은 선택 사항이며 SAP AI Core 설정에 따라 구성해야 합니다. ::: -5. `/models` 명령을 실행하여 40+ 유효한 모형에서 선택하십시오. +5. `/models` 명령을 실행하여 40개 이상의 사용 가능한 모델 중에서 선택하십시오. ```txt /models @@ -1492,11 +1509,44 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ --- -### OVHcloud AI 엔드포인트 +### STACKIT -1. [OVHcloud 패널](https://ovh.com/manager)에 머리. `Public Cloud` 섹션으로 이동, `AI & Machine Learning` > `AI Endpoints` 및 `API Keys` 탭에서, ** 새로운 API 키 활성화 **. +STACKIT AI Model Serving은 Llama, Mistral, Qwen과 같은 LLM에 초점을 맞추고 유럽 인프라에서 데이터 주권을 최대한 보장하는 완전 관리형 AI 모델 호스팅 환경을 제공합니다. -2. `/connect` 명령을 실행하고 ** OVHcloud AI Endpoints**를 검색하십시오. +1. [STACKIT Portal](https://portal.stackit.cloud)로 이동하여 **AI Model Serving**으로 이동한 다음 프로젝트의 인증 토큰을 만듭니다. + + :::tip + 인증 토큰을 만들기 전에 STACKIT 고객 계정, 사용자 계정 및 프로젝트가 필요합니다. + ::: + +2. `/connect` 명령을 실행하고 **STACKIT**을 검색하십시오. + + ```txt + /connect + ``` + +3. STACKIT AI Model Serving 인증 토큰을 입력하십시오. + + ```txt + ┌ API key + │ + │ + └ enter + ``` + +4. `/models` 명령을 실행하여 _Qwen3-VL 235B_ 또는 *Llama 3.3 70B*와 같은 사용 가능한 모델을 선택하십시오. + + ```txt + /models + ``` + +--- + +### OVHcloud AI Endpoints + +1. [OVHcloud 패널](https://ovh.com/manager)로 이동합니다. `Public Cloud` 섹션으로 이동하여 `AI & Machine Learning` > `AI Endpoints`로 간 뒤 `API Keys` 탭에서 **Create a new API key**를 클릭합니다. + +2. `/connect` 명령을 실행하고 **OVHcloud AI Endpoints**를 검색하십시오. ```txt /connect @@ -1511,7 +1561,7 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 gpt-oss-120b . +4. `/models` 명령을 실행하여 모델(예: _gpt-oss-120b_)을 선택하십시오. ```txt /models @@ -1521,9 +1571,9 @@ SAP AI Core는 OpenAI, Anthropic, Google, Amazon, Meta, Mistral 및 AI21의 40+ ### Scaleway -opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/)를 사용하려면: +OpenCode로 [Scaleway Generative APIs](https://www.scaleway.com/en/docs/generative-apis/)를 사용하려면: -1. [Scaleway 콘솔 IAM 설정](https://console.scaleway.com/iam/api-keys)를 통해 새로운 API 키 생성. +1. [Scaleway Console IAM 설정](https://console.scaleway.com/iam/api-keys)에서 새 API 키를 생성합니다. 2. `/connect` 명령을 실행하고 **Scaleway**를 검색하십시오. @@ -1540,7 +1590,7 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오. devstral-2-123b-instruct-2512 또는 gpt-oss-120b . +4. `/models` 명령을 실행하여 모델(예: _devstral-2-123b-instruct-2512_ 또는 _gpt-oss-120b_)을 선택하십시오. ```txt /models @@ -1548,9 +1598,9 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ --- -## Together AI +### Together AI -1. [Together AI 콘솔](https://api.together.ai)에 머리, 계정을 만들고 ** 키 추가 **를 클릭합니다. +1. [Together AI 콘솔](https://api.together.ai)로 이동하여 계정을 만들고 **Add Key**를 클릭합니다. 2. `/connect` 명령을 실행하고 **Together AI**를 검색하십시오. @@ -1558,7 +1608,7 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ /connect ``` -3. 함께 AI API 키를 입력하십시오. +3. Together AI API 키를 입력하십시오. ```txt ┌ API key @@ -1567,7 +1617,7 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Kimi K2 Instruct . +4. `/models` 명령을 실행하여 모델(예: _Kimi K2 Instruct_)을 선택하십시오. ```txt /models @@ -1575,17 +1625,17 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ --- -## Venice AI +### Venice AI -1. [Venice AI 콘솔](https://venice.ai)에 머리, 계정을 만들고 API 키를 생성합니다. +1. [Venice AI 콘솔](https://venice.ai)로 이동하여 계정을 만들고 API 키를 생성합니다. -2. `/connect` 명령을 실행하고 **Venice AI **를 검색하십시오. +2. `/connect` 명령을 실행하고 **Venice AI**를 검색하십시오. ```txt /connect ``` -3. 베니스 AI API 열쇠를 입력하십시오. +3. Venice AI API 키를 입력하십시오. ```txt ┌ API key @@ -1594,7 +1644,7 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Llama 3.3 70B . +4. `/models` 명령을 실행하여 모델(예: _Llama 3.3 70B_)을 선택하십시오. ```txt /models @@ -1602,11 +1652,11 @@ opencode를 사용하여 [Scaleway Generative APIs](https://www.scaleway.com/en/ --- -## Vercel AI 게이트웨이 +### Vercel AI Gateway -Vercel AI를 게이트웨이는 OpenAI, Anthropic, Google, xAI 등에서 모델에 액세스할 수 있습니다. 모델은 Markup없이 목록 가격에서 제공됩니다. +Vercel AI Gateway는 OpenAI, Anthropic, Google, xAI 등의 모델에 액세스할 수 있으며, 통합된 엔드포인트를 통해 더 많은 기능을 제공합니다. 모델은 마크업 없이 정가로 제공됩니다. -1. [Vercel 대시보드](https://vercel.com/)에 머리, **AI Gateway** 탭으로 이동하고, **API 키**를 클릭하여 새로운 API 키 생성. +1. [Vercel 대시보드](https://vercel.com/)로 이동하여 **AI Gateway** 탭으로 간 뒤, **API keys**를 클릭하여 새 API 키를 생성합니다. 2. `/connect` 명령을 실행하고 **Vercel AI Gateway**를 검색하십시오. @@ -1614,7 +1664,7 @@ Vercel AI를 게이트웨이는 OpenAI, Anthropic, Google, xAI 등에서 모델� /connect ``` -3. Vercel AI Gateway API 키 입력. +3. Vercel AI Gateway API 키를 입력하십시오. ```txt ┌ API key @@ -1623,13 +1673,13 @@ Vercel AI를 게이트웨이는 OpenAI, Anthropic, Google, xAI 등에서 모델� └ enter ``` -4. 모델을 선택하려면 `/models` 명령을 실행하십시오. +4. `/models` 명령을 실행하여 모델을 선택하십시오. ```txt /models ``` -opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공급자 routing 순서를 지정하는 예입니다. +OpenCode 구성을 통해 모델을 사용자 정의할 수도 있습니다. 다음은 공급자 라우팅 순서를 지정하는 예입니다. ```json title="opencode.json" { @@ -1648,19 +1698,19 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� } ``` -몇몇 유용한 여정 선택권: +몇 가지 유용한 라우팅 옵션: | 옵션 | 설명 | | ------------------- | --------------------------------- | -| `order` | 공급자의 순서 | -| `only` | 특정 공급자 제한 | -| `zeroDataRetention` | 제로 데이터 보유 정책만 이용 가능 | +| `order` | 시도할 공급자 순서 | +| `only` | 특정 공급자로 제한 | +| `zeroDataRetention` | 데이터 보유 정책이 없는 곳만 사용 | --- ### xAI -1. [xAI 콘솔](https://console.x.ai/)에 머리, 계정을 만들고 API 키를 생성합니다. +1. [xAI 콘솔](https://console.x.ai/)로 이동하여 계정을 만들고 API 키를 생성합니다. 2. `/connect` 명령을 실행하고 **xAI**를 검색하십시오. @@ -1677,7 +1727,7 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 Grok Beta . +4. `/models` 명령을 실행하여 모델(예: _Grok Beta_)을 선택하십시오. ```txt /models @@ -1687,15 +1737,15 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� ### Z.AI -1. [Z.AI API 콘솔](https://z.ai/manage-apikey/apikey-list)에 머리, 계정을 만들고, **새로운 API 키**를 클릭합니다. +1. [Z.AI API 콘솔](https://z.ai/manage-apikey/apikey-list)로 이동하여 계정을 만들고 **Create a new API key**를 클릭합니다. -2. `/connect` 명령을 실행하고 ** Z.AI**를 검색하십시오. +2. `/connect` 명령을 실행하고 **Z.AI**를 검색하십시오. ```txt /connect ``` -**GLM 코딩 플랜**에 가입하면 **Z.AI 코딩 플랜**을 선택하십시오. + **GLM Coding Plan**에 가입했다면 **Z.AI Coding Plan**을 선택하십시오. 3. Z.AI API 키를 입력하십시오. @@ -1706,7 +1756,7 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� └ enter ``` -4. `/models` 명령을 실행하여 같은 모델을 선택하십시오 GLM-4.7 . +4. `/models` 명령을 실행하여 모델(예: _GLM-4.7_)을 선택하십시오. ```txt /models @@ -1714,9 +1764,9 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� --- -## ZenMux +### ZenMux -1. [ZenMux 대쉬보드](https://zenmux.ai/settings/keys)에 머리, click **Create API Key**, 키 복사. +1. [ZenMux 대시보드](https://zenmux.ai/settings/keys)로 이동하여 **Create API Key**를 클릭하고 키를 복사합니다. 2. `/connect` 명령을 실행하고 ZenMux를 검색하십시오. @@ -1724,7 +1774,7 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� /connect ``` -3. 공급자를 위한 API 열쇠를 입력하십시오. +3. API 키를 입력하십시오. ```txt ┌ API key @@ -1733,38 +1783,38 @@ opencode config를 통해 모델을 사용자 정의 할 수 있습니다. 공� └ enter ``` -4. 많은 ZenMux 모델은 기본적으로 사전 로드되며 `/models` 명령을 실행하여 원하는 것을 선택합니다. +4. 많은 ZenMux 모델은 기본적으로 미리 로드되어 있으므로 `/models` 명령을 실행하여 원하는 것을 선택하십시오. ```txt /models ``` -opencode config를 통해 추가 모델을 추가할 수 있습니다. + OpenCode 구성을 통해 모델을 추가할 수도 있습니다. -```json title="opencode.json" {6} -{ - "$schema": "https://opencode.ai/config.json", - "provider": { - "zenmux": { - "models": { - "somecoolnewmodel": {} - } - } - } -} -``` + ```json title="opencode.json" {6} + { + "$schema": "https://opencode.ai/config.json", + "provider": { + "zenmux": { + "models": { + "somecoolnewmodel": {} + } + } + } + } + ``` --- ## 사용자 정의 공급자 -`/connect` 명령에 나열되지 않은 **OpenAI-compatible** 공급자를 추가하려면: +`/connect` 명령에 나열되지 않은 **OpenAI 호환** 공급자를 추가하려면: :::tip -opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. 가장 현대적인 AI 제공 업체는 OpenAI 호환 API를 제공합니다. +OpenCode에서 모든 OpenAI 호환 공급자를 사용할 수 있습니다. 대부분의 최신 AI 공급자는 OpenAI 호환 API를 제공합니다. ::: -1. `/connect` 명령을 실행하고 ** 다른**로 스크롤하십시오. +1. `/connect` 명령을 실행하고 **Other**로 스크롤하십시오. ```bash $ /connect @@ -1777,7 +1827,7 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. └ ``` -2. 공급자를 위한 유일한 ID를 입력하십시오. +2. 공급자를 위한 고유한 ID를 입력하십시오. ```bash $ /connect @@ -1790,10 +1840,10 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. ``` :::note - 기억에 남는 ID를 선택하면 구성 파일에서 이것을 사용할 수 있습니다. + 기억하기 쉬운 ID를 선택하십시오. 구성 파일에서 이 ID를 사용하게 됩니다. ::: -3. 공급자를 위한 당신의 API 열쇠를 입력하십시오. +3. 공급자의 API 키를 입력하십시오. ```bash $ /connect @@ -1829,23 +1879,23 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. } ``` -여기에 구성 옵션: + 구성 옵션은 다음과 같습니다: + - **npm**: 사용할 AI SDK 패키지. OpenAI 호환 공급자의 경우 `@ai-sdk/openai-compatible` + - **name**: UI에 표시될 이름 + - **models**: 사용 가능한 모델 + - **options.baseURL**: API 엔드포인트 URL + - **options.apiKey**: 인증을 사용하지 않는 경우 선택적으로 API 키 설정 + - **options.headers**: 선택적으로 사용자 정의 헤더 설정 -- **npm**: AI SDK 패키지, OpenAI 호환 공급자 `@ai-sdk/openai-compatible` -**name**: UI의 표시 이름. -- ** 모델**: 유효한 모델. -- **options.baseURL**: API 엔드포인트 URL. -- **options.apiKey**: 선택적으로 auth를 사용하지 않는 경우 API 키 설정. -- **options.headers**: 선택적으로 사용자 정의 헤더를 설정합니다. + 고급 옵션에 대한 자세한 내용은 아래 예제를 참조하십시오. -아래 예에서 고급 옵션에 더. - -5. `/models` 명령을 실행하고 사용자 정의 공급자와 모델은 선택 목록에서 나타납니다. +5. `/models` 명령을 실행하면 사용자 정의 공급자와 모델이 선택 목록에 나타납니다. --- ##### 예제 -다음은 `apiKey`, `headers` 및 모델 `limit` 옵션 설정 예입니다. +다음은 `apiKey`, `headers` 및 모델 `limit` 옵션을 설정하는 예입니다. ```json title="opencode.json" {9,11,17-20} { @@ -1877,11 +1927,12 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. 구성 세부 사항: -- **apiKey**: `env` 변수 구문을 사용하여 설정, [learn more](/docs/config#env-vars). -**headers**: 각 요청으로 전송된 사용자 정의 헤더. -- **limit.context**: 모델이 허용하는 최대 Input Tokens. -- **limit.output**: 모델이 생성할 수 있는 최대 Output Tokens. +- **apiKey**: `env` 변수 구문을 사용하여 설정, [더 알아보기](/docs/config#env-vars). +- **headers**: 각 요청과 함께 전송되는 사용자 정의 헤더. +- **limit.context**: 모델이 허용하는 최대 입력 토큰. +- **limit.output**: 모델이 생성할 수 있는 최대 출력 토큰. -`limit` 필드를 사용하면 opencode가 얼마나 많은 컨텍스트를 이해 할 수 있습니다. 표준 공급자는 model.dev에서 자동적으로 당깁니다. +`limit` 필드를 사용하면 OpenCode가 남은 컨텍스트 양을 파악할 수 있습니다. 표준 공급자는 models.dev에서 자동으로 이를 가져옵니다. --- @@ -1889,13 +1940,11 @@ opencode를 사용하여 OpenAI 호환 공급자를 사용할 수 있습니다. 공급자 구성에 문제가 있는 경우 다음을 확인하십시오. -1. **주의 설정 확인 **: `opencode auth list`를 실행하여 자격 증명을 볼 수 있습니다. - 공급자는 config에 추가됩니다. - -이것은 Amazon Bedrock과 같은 공급자에 적용되지 않습니다. 환경 변수에 의존합니다. +1. **인증 설정 확인**: `opencode auth list`를 실행하여 공급자의 자격 증명이 구성에 추가되었는지 확인하십시오. -2. 주문 공급자를 위해, opencode config를 검사하고: + Amazon Bedrock과 같이 인증을 위해 환경 변수에 의존하는 공급자에는 적용되지 않습니다. -- `/connect` 명령에 사용되는 공급자 ID가 opencode config에서 ID를 일치시킵니다. -- 오른쪽 npm 패키지는 공급자에 사용됩니다. 예를 들어 Cerebras의 `@ai-sdk/cerebras`를 사용합니다. 그리고 다른 모든 OpenAI 호환 공급자를 위해, 사용 `@ai-sdk/openai-compatible`. -- 올바른 API 엔드포인트는 `options.baseURL` 필드에 사용됩니다. +2. 사용자 정의 공급자의 경우, OpenCode 구성을 확인하고 다음을 수행하십시오: + - `/connect` 명령에 사용된 공급자 ID가 OpenCode 구성의 ID와 일치하는지 확인하십시오. + - 공급자에 올바른 npm 패키지가 사용되었는지 확인하십시오. 예를 들어 Cerebras에는 `@ai-sdk/cerebras`를 사용하고, 다른 모든 OpenAI 호환 공급자에는 `@ai-sdk/openai-compatible`을 사용하십시오. + - `options.baseURL` 필드에 올바른 API 엔드포인트가 사용되었는지 확인하십시오. diff --git a/packages/web/src/content/docs/ko/sdk.mdx b/packages/web/src/content/docs/ko/sdk.mdx index f6d43c136..a5d12d1ab 100644 --- a/packages/web/src/content/docs/ko/sdk.mdx +++ b/packages/web/src/content/docs/ko/sdk.mdx @@ -117,13 +117,85 @@ try { --- +## 구조화된 출력 + +JSON 스키마와 함께 `format`을 지정하여 모델에서 구조화된 JSON 출력을 요청할 수 있습니다. 모델은 `StructuredOutput` 도구를 사용하여 스키마와 일치하는 검증된 JSON을 반환합니다. + +### 기본 사용법 + +```typescript +const result = await client.session.prompt({ + path: { id: sessionId }, + body: { + parts: [{ type: "text", text: "Research Anthropic and provide company info" }], + format: { + type: "json_schema", + schema: { + type: "object", + properties: { + company: { type: "string", description: "Company name" }, + founded: { type: "number", description: "Year founded" }, + products: { + type: "array", + items: { type: "string" }, + description: "Main products", + }, + }, + required: ["company", "founded"], + }, + }, + }, +}) + +// Access the structured output +console.log(result.data.info.structured_output) +// { company: "Anthropic", founded: 2021, products: ["Claude", "Claude API"] } +``` + +### 출력 형식 유형 + +| 유형 | 설명 | +| ------------- | ------------------------------------------------- | +| `text` | 기본값. 표준 텍스트 응답 (구조화된 출력 없음) | +| `json_schema` | 제공된 스키마와 일치하는 검증된 JSON을 반환합니다 | + +### JSON 스키마 형식 + +`type: 'json_schema'`를 사용할 때 다음을 제공하십시오: + +| 필드 | 유형 | 설명 | +| ------------ | --------------- | ------------------------------------------- | +| `type` | `'json_schema'` | 필수. JSON 스키마 모드를 지정합니다 | +| `schema` | `object` | 필수. 출력 구조를 정의하는 JSON 스키마 객체 | +| `retryCount` | `number` | 선택 사항. 검증 재시도 횟수 (기본값: 2) | + +### 오류 처리 + +모델이 모든 재시도 후에도 유효한 구조화된 출력을 생성하지 못하면 응답에 `StructuredOutputError`가 포함됩니다: + +```typescript +if (result.data.info.error?.name === "StructuredOutputError") { + console.error("Failed to produce structured output:", result.data.info.error.message) + console.error("Attempts:", result.data.info.error.retries) +} +``` + +### 모범 사례 + +1. **명확한 설명 제공**: 모델이 추출할 데이터를 이해하는 데 도움이 되도록 스키마 속성에 명확한 설명을 제공하십시오. +2. **`required` 사용**: 필수 필드를 지정하려면 `required`를 사용하십시오. +3. **스키마를 집중적으로 유지**: 복잡한 중첩 스키마는 모델이 올바르게 채우기 더 어려울 수 있습니다. +4. **적절한 `retryCount` 설정**: 복잡한 스키마의 경우 늘리고 단순한 스키마의 경우 줄이십시오. + +--- + ## API SDK는 type-safe 클라이언트를 통해 모든 서버 API를 노출합니다. --- -## 글로벌 +### 글로벌 | 메서드 | 설명 | 응답 | | ----------------- | ---------------------- | ------------------------------------ | @@ -142,10 +214,10 @@ console.log(health.data.version) ### 앱 -| 방법 | 설명 | 응답 | -| -------------- | ------------------------- | ----------------------------------------------- | -| `app.log()` | 로그 항목 작성 | `boolean` | -| `app.agents()` | 이용 가능한 모든 에이전트 | <a href={typesUrl}><code> 에이전트[]</code></a> | +| 방법 | 설명 | 응답 | +| -------------- | ------------------------- | ------------------------------------------- | +| `app.log()` | 로그 항목 작성 | `boolean` | +| `app.agents()` | 이용 가능한 모든 에이전트 | <a href={typesUrl}><code>Agent[]</code></a> | --- @@ -167,7 +239,7 @@ const agents = await client.app.agents() --- -## 프로젝트 +### 프로젝트 | 방법 | 설명 | 응답 | | ------------------- | ----------------------- | --------------------------------------------- | @@ -205,7 +277,7 @@ const pathInfo = await client.path.get() --- -#### 구성 +### 구성 | 방법 | 설명 | 응답 | | -------------------- | -------------------------- | ----------------------------------------------------------------------------------------------------- | @@ -224,29 +296,29 @@ const { providers, default: defaults } = await client.config.providers() --- -## 세션 - -| 메서드 | 설명 | 비고 | -| ---------------------------------------------------------- | ----------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `session.list()` | 세션 일람 | <a href={typesUrl}><code>Session[]</code></a> | -| `session.get({ path })` | 세션 가져 오기 | <a href={typesUrl}><code>Session</code></a> | -| `session.children({ path })` | 하위 세션 목록 | 반품 <a href={typesUrl}><code>Session</code></a> | -| `session.create({ body })` | 세션 만들기 | 리턴 <a href={typesUrl}><code>Session</code></a> | -| `session.delete({ path })` | 세션 삭제 | `boolean` 반품 | -| `session.update({ path, body })` | 업데이트 세션 속성 | 반품 <a href={typesUrl}><code>Session</code></a> | -| `session.init({ path, body })` | 앱 초기화 및 `AGENTS.md` 분석 | `boolean`를 반환 | -| `session.abort({ path })` | 운영 중인 세션 | 반품 `boolean` | -| `session.share({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> | -| `session.unshare({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> | -| `session.summarize({ path, body })` | 세션 요약 | 반품 `boolean` | -| `session.messages({ path })` | 세션의 메시지 목록 | `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part</code></a>`}[]` | -| `session.message({ path })` | 메시지 상세정보 | 반품 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` | -| `session.prompt({ path, body })` | prompt 메시지 보내기 | `body.noReply: true` 반환 UserMessage (콘텍스트 전용). 기본 반환 <a href={typesUrl}><code>AssistantMessage</code></a> 에 AI 응답 | -| `session.command({ path, body })` | 세션으로 명령을 전송 | `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` | -| `session.shell({ path, body })` | shell 명령을 실행 | <a href={typesUrl}><code>AssistantMessage</code></a> | -| `session.revert({ path, body })` | 메시지 다시 변환 | <a href={typesUrl}><code>Session</code></a> | -| `session.unrevert({ path })` | 메시지 되돌리기 취소 | 반품 <a href={typesUrl}><code>Session</code></a> | -| `postSessionByIdPermissionsByPermissionId({ path, body })` | 허가 요청 대응 | 반품 `boolean` | +### 세션 + +| 메서드 | 설명 | 비고 | +| ---------------------------------------------------------- | ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `session.list()` | 세션 일람 | <a href={typesUrl}><code>Session[]</code></a> | +| `session.get({ path })` | 세션 가져 오기 | <a href={typesUrl}><code>Session</code></a> | +| `session.children({ path })` | 하위 세션 목록 | 반품 <a href={typesUrl}><code>Session</code></a> | +| `session.create({ body })` | 세션 만들기 | 리턴 <a href={typesUrl}><code>Session</code></a> | +| `session.delete({ path })` | 세션 삭제 | `boolean` 반품 | +| `session.update({ path, body })` | 업데이트 세션 속성 | 반품 <a href={typesUrl}><code>Session</code></a> | +| `session.init({ path, body })` | 앱 초기화 및 `AGENTS.md` 분석 | `boolean`를 반환 | +| `session.abort({ path })` | 운영 중인 세션 | 반품 `boolean` | +| `session.share({ path })` | 공유 세션 | 반품 <a href={typesUrl}><code>Session</code></a> | +| `session.unshare({ path })` | 공유 세션 취소 | 반품 <a href={typesUrl}><code>Session</code></a> | +| `session.summarize({ path, body })` | 세션 요약 | 반품 `boolean` | +| `session.messages({ path })` | 세션의 메시지 목록 | `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part</code></a>`}[]` | +| `session.message({ path })` | 메시지 상세정보 | 반품 `{ info: `<a href={typesUrl}><code>Message</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` | +| `session.prompt({ path, body })` | prompt 메시지 보내기 | `body.noReply: true`는 UserMessage(컨텍스트 전용)를 반환합니다. 기본값은 AI 응답과 함께 <a href={typesUrl}><code>AssistantMessage</code></a>를 반환합니다. [구조화된 출력](#구조화된-출력)을 위한 `body.outputFormat`을 지원합니다 | +| `session.command({ path, body })` | 세션으로 명령을 전송 | `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Part[]</code></a>`}` | +| `session.shell({ path, body })` | shell 명령을 실행 | <a href={typesUrl}><code>AssistantMessage</code></a> | +| `session.revert({ path, body })` | 메시지 다시 변환 | <a href={typesUrl}><code>Session</code></a> | +| `session.unrevert({ path })` | 메시지 되돌리기 취소 | 반품 <a href={typesUrl}><code>Session</code></a> | +| `postSessionByIdPermissionsByPermissionId({ path, body })` | 허가 요청 대응 | 반품 `boolean` | --- @@ -281,7 +353,7 @@ await client.session.prompt({ --- -## 파일 +### 파일 | 방법 | 설명 | 응답 | | ------------------------- | ---------------------------- | -------------------------------------------------------------------------------------- | @@ -322,7 +394,7 @@ const content = await client.file.read({ --- -#### TUI +### TUI | 방법 | 설명 | 응답 | | ------------------------------ | ------------------------ | --------- | @@ -353,7 +425,7 @@ await client.tui.showToast({ --- -##### 인증 +### 인증 | 방법 | 설명 | 응답 | | ------------------- | -------------- | --------- | @@ -372,7 +444,7 @@ await client.auth.set({ --- -## 이벤트 +### 이벤트 | 방법 | 설명 | 응답 | | ------------------- | ----------------------- | ----------------------- | diff --git a/packages/web/src/content/docs/ko/themes.mdx b/packages/web/src/content/docs/ko/themes.mdx index b83b62017..af148eda1 100644 --- a/packages/web/src/content/docs/ko/themes.mdx +++ b/packages/web/src/content/docs/ko/themes.mdx @@ -3,28 +3,27 @@ title: 테마 description: 내장 테마를 선택하거나 자신만의 테마를 정의하세요. --- -opencode를 사용하면 여러 내장 테마 중 하나에서 선택할 수 있으며 terminal 테마에 적응하는 테마를 사용하거나 사용자 정의 테마를 정의 할 수 있습니다. +OpenCode를 사용하면 여러 내장 테마 중 하나에서 선택할 수 있으며 terminal 테마에 적응하는 테마를 사용하거나 사용자 정의 테마를 정의 할 수 있습니다. -기본적으로 opencode는 자체 `opencode` 테마를 사용합니다. +기본적으로 OpenCode는 자체 `opencode` 테마를 사용합니다. --- ## 터미널 요구 사항 -자신의 풀 컬러 팔레트로 올바르게 표시하려면 terminal을 지원해야합니다 ** truecolor** (24 비트 색상). 대부분의 현대 terminal은 기본적으로 이것을 지원합니다, 그러나 당신은 그것을 가능하게 할 필요가 있을지도 모릅니다: +테마가 전체 색상 팔레트로 올바르게 표시되려면 터미널이 **truecolor** (24비트 색상)를 지원해야 합니다. 대부분의 최신 터미널은 기본적으로 이를 지원하지만, 활성화해야 할 수도 있습니다: --**체크 지원**: `echo $COLORTERM` - 그것은 `truecolor` 또는 `24bit`를 출력해야 합니다 +- **지원 확인**: `echo $COLORTERM` 실행 - `truecolor` 또는 `24bit`가 출력되어야 합니다. +- **truecolor 활성화**: 셸 프로필에서 환경 변수 `COLORTERM=truecolor`를 설정하십시오. +- **터미널 호환성**: 터미널 에뮬레이터가 24비트 색상을 지원하는지 확인하십시오 (iTerm2, Alacritty, Kitty, Windows Terminal 및 최신 버전의 GNOME Terminal 등 대부분의 최신 터미널이 지원함). -- ** truecolor 사용 가능**: shell 프로파일에서 환경 변수 `COLORTERM=truecolor`를 설정 -- **Terminal 호환성 **: terminal 에뮬레이터 지원 24 비트 색상 (iTerm2, Alacritty, Kitty, Windows Terminal 및 GNOME Terminal의 최신 버전) - -truecolor 지원 없이, 테마는 감소된 색깔 정확도로 나타날지도 모릅니다 또는 가장 가까운 256 색깔 대류로 뒤떨어질지도 모릅니다. +truecolor 지원이 없으면 테마가 감소된 색상 정확도로 표시되거나 가장 가까운 256색 근사치로 대체될 수 있습니다. --- ## 내장 테마 -opencode는 여러 내장 테마와 함께 제공됩니다. +OpenCode는 여러 내장 테마와 함께 제공됩니다. | 이름 | 설명 | | ---------------------- | ------------------------------------------------------------------- | @@ -46,27 +45,27 @@ opencode는 여러 내장 테마와 함께 제공됩니다. ## 시스템 테마 -`system` 테마는 terminal의 색깔 계획에 자동적으로 적응시키기 위하여 디자인됩니다. 고정 색상을 사용하는 전통적인 테마와 달리, system 테마: +`system` 테마는 터미널의 색상 스키마에 자동으로 적응하도록 설계되었습니다. 고정 색상을 사용하는 기존 테마와 달리, system 테마는: -- **그레이스케일**: terminal의 배경 색상을 기반으로 사용자 정의 회색 가늠자를 만들고 최적의 대조를 보장합니다. -- ** ANSI 색상 사용 ** : terminal의 색상 팔레트를 존중하는 구문 강조 및 UI 요소에 대한 표준 ANSI 색상 (0-15). -- ** terminal 기본 사항**: `none` 텍스트 및 배경 색상을 사용하여 terminal의 네이티브 외관을 유지합니다. +- **그레이스케일 생성**: 터미널의 배경 색상을 기반으로 사용자 정의 그레이스케일을 생성하여 최적의 대비를 보장합니다. +- **ANSI 색상 사용**: 구문 강조 및 UI 요소에 표준 ANSI 색상(0-15)을 활용하여 터미널의 색상 팔레트를 존중합니다. +- **터미널 기본값 유지**: 텍스트 및 배경 색상에 `none`을 사용하여 터미널의 기본 모양을 유지합니다. -시스템 테마는 사용자를위한 것입니다 : +시스템 테마는 다음과 같은 사용자에게 적합합니다: -- opencode가 terminal의 외관과 일치해야 합니다. -- 사용자 정의 terminal 색상 구성 -- 모든 terminal 응용 분야의 일관된 모습 +- OpenCode가 터미널의 모양과 일치하기를 원하는 경우 +- 사용자 정의 터미널 색상 스키마를 사용하는 경우 +- 모든 터미널 애플리케이션에서 일관된 모양을 선호하는 경우 --- ## 테마 사용 -테마를 `/theme` 명령어로 선택하여 테마를 선택할 수 있습니다. 또는 [config](/docs/config)에서 지정할 수 있습니다. +`/theme` 명령어로 테마 선택기를 불러와 테마를 선택할 수 있습니다. 또는 `tui.json`에서 지정할 수 있습니다. -```json title="opencode.json" {3} +```json title="tui.json" {3} { - "$schema": "https://opencode.ai/config.json", + "$schema": "https://opencode.ai/tui.json", "theme": "tokyonight" } ``` @@ -75,32 +74,35 @@ opencode는 여러 내장 테마와 함께 제공됩니다. ## 사용자 정의 테마 -opencode는 사용자가 쉽게 테마를 만들 수 있도록 유연한 JSON 기반 테마 시스템을 지원합니다. +OpenCode는 사용자가 쉽게 테마를 만들고 사용자 정의할 수 있도록 유연한 JSON 기반 테마 시스템을 지원합니다. --- -##### 계층 구조 +### 계층 구조 -테마는 다음과 같은 순서에서 여러 디렉토리에서로드됩니다. 나중에 감독은 이전 것을 무시합니다. +테마는 다음 순서대로 여러 디렉토리에서 로드되며, 나중 디렉토리가 이전 디렉토리를 덮어씁니다: -1.**Built-in themes** - 이것은 바이너리에 내장되어 있습니다. 2. **사용자 설정 디렉토리 ** - `~/.config/opencode/themes/*.json` 또는 `$XDG_CONFIG_HOME/opencode/themes/*.json`에서 정의 3. ** 루트 디렉토리 ** - `<project-root>/.opencode/themes/*.json`에서 정의 4. **현재 작업 디렉토리 ** - `./.opencode/themes/*.json`에서 정의 +1. **내장 테마 (Built-in themes)** - 바이너리에 내장되어 있습니다. +2. **사용자 설정 디렉토리 (User config directory)** - `~/.config/opencode/themes/*.json` 또는 `$XDG_CONFIG_HOME/opencode/themes/*.json`에 정의됩니다. +3. **프로젝트 루트 디렉토리 (Project root directory)** - `<project-root>/.opencode/themes/*.json`에 정의됩니다. +4. **현재 작업 디렉토리 (Current working directory)** - `./.opencode/themes/*.json`에 정의됩니다. -여러 디렉토리가 같은 이름을 가진 테마를 포함한다면, 더 높은 우선 순위를 가진 디렉토리의 테마가 사용됩니다. +여러 디렉토리에 같은 이름의 테마가 있는 경우, 더 높은 우선 순위를 가진 디렉토리의 테마가 사용됩니다. --- ### 테마 만들기 -사용자 정의 테마를 만들려면 테마 디렉토리 중 하나에서 JSON 파일을 만듭니다. +사용자 정의 테마를 만들려면 테마 디렉토리 중 하나에 JSON 파일을 만듭니다. -사용자 넓은 테마: +사용자 전역 테마: ```bash no-frame mkdir -p ~/.config/opencode/themes vim ~/.config/opencode/themes/my-theme.json ``` -프로젝트 별 테마. +프로젝트별 테마: ```bash no-frame mkdir -p .opencode/themes @@ -111,35 +113,34 @@ vim .opencode/themes/my-theme.json ### JSON 형식 -테마는 유연한 JSON 형식을 사용하여 지원: - --**Hex 색상**: `"#ffffff"` +테마는 다음을 지원하는 유연한 JSON 형식을 사용합니다: -- ** ANSI 색상**: `3` (0-255) -- ** 색상 참조 ** : `"primary"` 또는 사용자 정의 정의 -- ** 어두운 / 조명 변형 ** : `{"dark": "#000", "light": "#fff"}` -- ** 색상 없음 ** : `"none"` - terminal의 기본 색상 또는 투명 사용 +- **Hex 색상**: `"#ffffff"` +- **ANSI 색상**: `3` (0-255) +- **색상 참조**: `"primary"` 또는 사용자 정의 정의 +- **다크/라이트 변형**: `{"dark": "#000", "light": "#fff"}` +- **색상 없음**: `"none"` - 터미널의 기본 색상 또는 투명 사용 --- ### 색상 정의 -`defs` 단면도는 선택적이고 당신은 주제에서 참조될 수 있는 재사용할 수 있는 색깔을 정의할 수 있습니다. +`defs` 섹션은 선택 사항이며 테마 내에서 참조할 수 있는 재사용 가능한 색상을 정의할 수 있습니다. --- -## 터미널 기본값 +### 터미널 기본값 -특별한 가치 `"none"`는 terminal의 기본 색깔을 상속하기 위하여 어떤 색깔든지를 위해 사용될 수 있습니다. 이것은 특히 당신의 terminal의 색깔 계획과 이음새가 없는 혼합 테마 창조를 위해 유용합니다: +`"none"`이라는 특별한 값은 모든 색상에 대해 터미널의 기본 색상을 상속하는 데 사용할 수 있습니다. 이는 특히 터미널의 색상 스키마와 매끄럽게 어우러지는 테마를 만들 때 유용합니다: -- `"text": "none"` - terminal의 기본 전경 색상 사용 -- `"background": "none"` - terminal의 기본 배경 색상 사용 +- `"text": "none"` - 터미널의 기본 전경색 사용 +- `"background": "none"` - 터미널의 기본 배경색 사용 --- ### 예제 -사용자 정의 테마의 예입니다 : +사용자 정의 테마의 예입니다: ```json title="my-theme.json" { diff --git a/packages/web/src/content/docs/ko/tui.mdx b/packages/web/src/content/docs/ko/tui.mdx index 8717cc785..669d899d0 100644 --- a/packages/web/src/content/docs/ko/tui.mdx +++ b/packages/web/src/content/docs/ko/tui.mdx @@ -5,9 +5,9 @@ description: OpenCode 터미널 사용자 인터페이스 사용. import { Tabs, TabItem } from "@astrojs/starlight/components" -opencode는 LLM과 함께 프로젝트를 위해 대화형 terminal 인터페이스 또는 TUI를 제공합니다. +OpenCode는 LLM과 함께 프로젝트 작업을 하기 위한 대화형 터미널 인터페이스(TUI)를 제공합니다. -opencode는 현재 디렉토리에 TUI를 시작합니다. +OpenCode를 실행하면 현재 디렉토리에서 TUI가 시작됩니다. ```bash opencode @@ -19,7 +19,7 @@ opencode opencode /path/to/project ``` -TUI에 있다면 메시지가 표시됩니다. +TUI에 들어가면 메시지를 입력하여 프롬프트할 수 있습니다. ```text Give me a quick summary of the codebase. @@ -29,10 +29,10 @@ Give me a quick summary of the codebase. ## 파일 참조 -`@`를 사용하여 메시지에 파일을 참조 할 수 있습니다. 이것은 현재 작업 디렉토리에서 fuzzy 파일 검색입니다. +`@`를 사용하여 메시지에서 파일을 참조할 수 있습니다. 이것은 현재 작업 디렉토리에서 퍼지(fuzzy) 파일 검색을 수행합니다. :::tip -`@`를 사용하여 메시지의 참조 파일을 사용할 수 있습니다. +`@`를 사용하여 메시지에서 파일을 참조할 수 있습니다. ::: ```text "@packages/functions/src/api/index.ts" @@ -45,7 +45,7 @@ How is auth handled in @packages/functions/src/api/index.ts? ## Bash 명령 -`!`를 사용하여 shell 명령을 실행합니다. +`!`로 메시지를 시작하여 셸 명령을 실행합니다. ```bash frame="none" !ls -la @@ -57,21 +57,21 @@ How is auth handled in @packages/functions/src/api/index.ts? ## 명령 -opencode TUI를 사용할 때, `/`를 입력하여 명령 이름을 따라 작업을 신속하게 실행할 수 있습니다. 예를 들면: +OpenCode TUI를 사용할 때 `/` 뒤에 명령 이름을 입력하여 작업을 빠르게 실행할 수 있습니다. 예를 들어: ```bash frame="none" /help ``` -대부분의 명령은 `ctrl+x`를 `ctrl+x`가 기본 리더 키입니다. [더 알아보기](/docs/keybinds). +대부분의 명령에는 기본 리더 키인 `ctrl+x`를 사용하는 키바인드도 있습니다. [더 알아보기](/docs/keybinds). -여기에 모든 가능한 슬래시 명령이 있습니다. +사용 가능한 모든 슬래시 명령은 다음과 같습니다: --- -### /connect +### connect -opencode에 대한 공급자를 추가합니다. 사용 가능한 공급자에서 선택하고 API 키를 추가 할 수 있습니다. +OpenCode에 공급자를 추가합니다. 사용 가능한 공급자 중에서 선택하고 API 키를 추가할 수 있습니다. ```bash frame="none" /connect @@ -79,67 +79,67 @@ opencode에 대한 공급자를 추가합니다. 사용 가능한 공급자에� --- -### /compact +### compact -현재 세션을 압축합니다. 앨리스 : `/summarize` +현재 세션을 압축합니다. _별칭_: `/summarize` ```bash frame="none" /compact ``` -** Keybind:** `ctrl+x c` +**키바인드:** `ctrl+x c` --- -### /details +### details -토글 툴 실행 세부 사항. +도구 실행 세부 정보 토글. ```bash frame="none" /details ``` -** Keybind:** `ctrl+x d` +**키바인드:** `ctrl+x d` --- -### /editor +### editor -메시지를 작성하기 위한 외부 편집기를 엽니다. `EDITOR` 환경에서 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup). +메시지 작성을 위한 외부 편집기를 엽니다. `EDITOR` 환경 변수에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup). ```bash frame="none" /editor ``` -** Keybind:** `ctrl+x e` +**키바인드:** `ctrl+x e` --- -### /exit +### exit -opencode를 종료합니다. Aliases : `/quit`, `/q` +OpenCode를 종료합니다. _별칭_: `/quit`, `/q` ```bash frame="none" /exit ``` -** Keybind:** `ctrl+x q` +**키바인드:** `ctrl+x q` --- -### /export +### export -Markdown에 대한 현재 대화를 내보내고 기본 편집기에서 열립니다. `EDITOR` 환경에서 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup). +현재 대화를 Markdown으로 내보내고 기본 편집기에서 엽니다. `EDITOR` 환경 변수에 설정된 편집기를 사용합니다. [더 알아보기](#editor-setup). ```bash frame="none" /export ``` -** Keybind:** `ctrl+x x` +**키바인드:** `ctrl+x x` --- -### /help +### help 도움말 대화 상자를 표시합니다. @@ -147,107 +147,106 @@ Markdown에 대한 현재 대화를 내보내고 기본 편집기에서 열립� /help ``` -** Keybind:** `ctrl+x h` +**키바인드:** `ctrl+x h` --- -###### /init +### init -`AGENTS.md` 파일을 만들거나 업데이트하십시오. [더 알아보기](/docs/rules). +`AGENTS.md` 파일을 생성하거나 업데이트합니다. [더 알아보기](/docs/rules). ```bash frame="none" /init ``` -** Keybind:** `ctrl+x i` +**키바인드:** `ctrl+x i` --- -## /models +### models -사용 가능한 모델 목록. +사용 가능한 모델 목록을 표시합니다. ```bash frame="none" /models ``` -** Keybind:** `ctrl+x m` +**키바인드:** `ctrl+x m` --- -## /new +### new -새로운 세션을 시작합니다. 앨리스 : `/clear` +새 세션을 시작합니다. _별칭_: `/clear` ```bash frame="none" /new ``` -** Keybind:** `ctrl+x n` +**키바인드:** `ctrl+x n` --- -##### /redo +### redo -이전 undone 메시지 Redo. `/undo`를 사용하는 후에만 유효한. +이전에 실행 취소한 메시지를 다시 실행합니다. `/undo`를 사용한 후에만 사용할 수 있습니다. :::tip -모든 파일 변경도 복원됩니다. +모든 파일 변경 사항도 복원됩니다. ::: -내부적으로 Git을 사용하여 파일 변경을 관리합니다. 그래서 프로젝트 ** -Git 저장소**입니다. +내부적으로 Git을 사용하여 파일 변경 사항을 관리합니다. 따라서 프로젝트가 **Git 저장소**여야 합니다. ```bash frame="none" /redo ``` -** Keybind:** `ctrl+x r` +**키바인드:** `ctrl+x r` --- -## /sessions +### sessions -세션 간 목록 및 전환. Aliases : `/resume`, `/continue` +세션 목록을 표시하고 세션 간을 전환합니다. _별칭_: `/resume`, `/continue` ```bash frame="none" /sessions ``` -** Keybind:** `ctrl+x l` +**키바인드:** `ctrl+x l` --- -## 공유 +### share -현재 세션 공유. [더 알아보기](/docs/share). +현재 세션을 공유합니다. [더 알아보기](/docs/share). ```bash frame="none" /share ``` -** Keybind:** `ctrl+x s` +**키바인드:** `ctrl+x s` --- -## /theme +### themes -사용할 수 있는 테마 목록. +사용 가능한 테마 목록을 표시합니다. ```bash frame="none" -/theme +/themes ``` -** Keybind:** `ctrl+x t` +**키바인드:** `ctrl+x t` --- -### /thinking +### thinking -대화의 사고/거주 블록의 가시성을 토합니다. 사용할 때, 확장 된 생각을 지원하는 모델의 이유 프로세스를 볼 수 있습니다. +대화에서 생각/추론 블록의 가시성을 토글합니다. 활성화하면 확장된 사고를 지원하는 모델의 추론 과정을 볼 수 있습니다. :::note -이 명령은 생각 블록이 ** 표시되었는지 여부 만 제어 ** - 모델의 소싱 기능을 활성화하거나 비활성화하지 않습니다. toggle 실제적인 reasoning 기능에, 모형 변종을 통해서 주기 위하여 `ctrl+t`를 이용합니다. +이 명령은 생각 블록이 **표시되는지 여부만 제어**하며 모델의 추론 기능을 활성화하거나 비활성화하지 않습니다. 실제 추론 기능을 토글하려면 `ctrl+t`를 사용하여 모델 변형을 순환하십시오. ::: ```bash frame="none" @@ -256,28 +255,27 @@ Git 저장소**입니다. --- -##### /undo +### undo -대화에서 마지막 메시지. 가장 최근의 사용자 메시지, 모든 후속 응답 및 모든 파일 변경 제거. +대화의 마지막 메시지를 실행 취소합니다. 가장 최근의 사용자 메시지, 모든 후속 응답 및 모든 파일 변경 사항을 제거합니다. :::tip -어떤 파일 변경도 복제됩니다. +모든 파일 변경 사항도 되돌려집니다. ::: -내부적으로 Git을 사용하여 파일 변경을 관리합니다. 그래서 프로젝트 ** -Git 저장소**입니다. +내부적으로 Git을 사용하여 파일 변경 사항을 관리합니다. 따라서 프로젝트가 **Git 저장소**여야 합니다. ```bash frame="none" /undo ``` -** Keybind:** `ctrl+x u` +**키바인드:** `ctrl+x u` --- -#### /unshare +### unshare -Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). +현재 세션 공유를 취소합니다. [더 알아보기](/docs/share#un-sharing). ```bash frame="none" /unshare @@ -285,9 +283,9 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). --- -## 편집기 설정 +## Editor setup -`/editor`와 `/export` 명령 모두는 `EDITOR` 환경변수에서 지정된 편집기를 사용합니다. +`/editor`와 `/export` 명령 모두 `EDITOR` 환경 변수에 지정된 편집기를 사용합니다. <Tabs> <TabItem label="Linux/macOS"> @@ -301,8 +299,7 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). export EDITOR="code --wait" ``` -영원한 만들기 위하여, 당신의 shell 프로파일에 이것을 추가하십시오; -`~/.bashrc`, `~/.zshrc`, 등. + 영구적으로 설정하려면 셸 프로필(`~/.bashrc`, `~/.zshrc` 등)에 추가하십시오. </TabItem> @@ -315,8 +312,7 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). set EDITOR=code --wait ``` -영구적으로, use **System Properties** > ** 환경 -변수**. + 영구적으로 설정하려면 **시스템 속성** > **환경 변수**를 사용하십시오. </TabItem> @@ -329,62 +325,72 @@ Unshare 현재 세션. [더 알아보기](/docs/share#un-sharing). $env:EDITOR = "code --wait" ``` -영구적으로 만들려면 PowerShell 프로파일에 추가하십시오. + 영구적으로 설정하려면 PowerShell 프로필에 추가하십시오. </TabItem> </Tabs> -인기있는 편집기 옵션은 다음과 같습니다 : +인기 있는 편집기 옵션은 다음과 같습니다: -- `code` - Visual Studio 코드 -- `cursor` - 커서 -- `windsurf` - 윈드 서핑 -- `nvim` - Neovim 편집기 -- `vim` - Vim 편집기 -- `nano` - 나노 편집기 -- `notepad` - 윈도우 노트패드 -- `subl` - 승화 텍스트 +- `code` - Visual Studio Code +- `cursor` - Cursor +- `windsurf` - Windsurf +- `nvim` - Neovim editor +- `vim` - Vim editor +- `nano` - Nano editor +- `notepad` - Windows Notepad +- `subl` - Sublime Text :::note -VS Code와 같은 일부 편집기는 `--wait` 플래그와 함께 시작해야합니다. +VS Code와 같은 일부 편집기는 `--wait` 플래그와 함께 시작해야 합니다. ::: -일부 편집기는 명령줄 인수가 차단 모드에서 실행되어야 합니다. `--wait` 플래그는 닫힐 때까지 편집기 프로세스 블록을 만듭니다. +일부 편집기는 차단 모드에서 실행하려면 명령줄 인수가 필요합니다. `--wait` 플래그는 편집기 프로세스가 닫힐 때까지 차단되도록 합니다. --- ## 구성 -opencode config 파일을 통해 TUI 동작을 사용자 정의할 수 있습니다. +`tui.json` (또는 `tui.jsonc`) 파일을 통해 TUI 동작을 사용자 정의할 수 있습니다. -```json title="opencode.json" +```json title="tui.json" { - "$schema": "https://opencode.ai/config.json", - "tui": { - "scroll_speed": 3, - "scroll_acceleration": { - "enabled": true - } - } + "$schema": "https://opencode.ai/tui.json", + "theme": "opencode", + "keybinds": { + "leader": "ctrl+x" + }, + "scroll_speed": 3, + "scroll_acceleration": { + "enabled": true + }, + "diff_style": "auto" } ``` +이는 서버/런타임 동작을 구성하는 `opencode.json`과는 별개입니다. + ### 옵션 -- `scroll_acceleration` - 부드러운 자연 스크롤을위한 macOS 스타일 스크롤 가속 가능. 사용할 때, 스크롤 속도는 빠른 스크롤 제스처로 증가하고 느린 움직임을 위해 정확한 유지. **이 설정은 `scroll_speed`를 통해 우선 순위를 부여하고 활성화 할 때. ** -- `scroll_speed` - 스크롤 명령 (최소 : `1`)을 사용하여 TUI 스크롤을 빠르게 제어합니다. 기본 `3`. ** 참고: `scroll_acceleration.enabled`가 `true`로 설정되면 무시됩니다.** +- `theme` - UI 테마를 설정합니다. [더 알아보기](/docs/themes). +- `keybinds` - 키보드 단축키를 사용자 정의합니다. [더 알아보기](/docs/keybinds). +- `scroll_acceleration.enabled` - 부드럽고 자연스러운 스크롤을 위해 macOS 스타일의 스크롤 가속을 활성화합니다. 활성화하면 빠른 스크롤 제스처로 스크롤 속도가 증가하고 느린 움직임에서는 정밀하게 유지됩니다. **이 설정은 `scroll_speed`보다 우선하며 활성화 시 이를 덮어씁니다.** +- `scroll_speed` - 스크롤 명령을 사용할 때 TUI 스크롤 속도를 제어합니다 (최소: `0.001`, 소수점 값 지원). 기본값은 `3`입니다. **참고: `scroll_acceleration.enabled`가 `true`로 설정되면 무시됩니다.** +- `diff_style` - diff 렌더링 방식을 제어합니다. `"auto"`는 터미널 너비에 적응하고, `"stacked"`는 항상 단일 열 레이아웃을 표시합니다. + +`OPENCODE_TUI_CONFIG`를 사용하여 사용자 정의 TUI 설정 경로를 로드할 수 있습니다. --- ## 사용자 정의 -명령 팔레트 (`ctrl+x h` 또는 `/help`)를 사용하여 TUI보기의 다양한 측면을 사용자 정의 할 수 있습니다. 재시작에 따른 설정 persist. +명령 팔레트(`ctrl+x h` 또는 `/help`)를 사용하여 TUI 보기의 다양한 측면을 사용자 정의할 수 있습니다. 설정은 다시 시작해도 유지됩니다. --- #### 사용자 이름 표시 -사용자 이름이 채팅 메시지에 나타나는지 여부를 수정합니다. 이것을 통해 접근: +채팅 메시지에 사용자 이름이 표시되는지 여부를 토글합니다. 다음을 통해 액세스: -- 명령 팔레트 : "username" 또는 "hide 사용자" 검색 -- 자동 설정은 TUI 세션을 통해 기억됩니다. +- 명령 팔레트: "username" 또는 "hide username" 검색 +- 설정은 자동으로 유지되며 TUI 세션 간에 기억됩니다. diff --git a/packages/web/src/content/docs/ko/zen.mdx b/packages/web/src/content/docs/ko/zen.mdx index 04d5c0df8..035f14414 100644 --- a/packages/web/src/content/docs/ko/zen.mdx +++ b/packages/web/src/content/docs/ko/zen.mdx @@ -3,7 +3,7 @@ title: Zen description: OpenCode가 제공하는 엄선된 모델 목록. --- -import config from "../../../../config.mjs" +import config from "../../../config.mjs" export const console = config.console export const email = `mailto:${config.email}` @@ -55,6 +55,7 @@ OpenCode Zen은 OpenCode의 다른 제공자와 동일한 방식으로 작동합 | 모델 | 모델 ID | 엔드포인트 | AI SDK 패키지 | | ------------------ | ------------------ | -------------------------------------------------- | --------------------------- | +| GPT 5.3 Codex | gpt-5.3-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | @@ -64,28 +65,30 @@ OpenCode Zen은 OpenCode의 다른 제공자와 동일한 방식으로 작동합 | GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | | GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` | +| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Claude Sonnet 4.6 | claude-sonnet-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | | Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | -| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| Gemini 3.1 Pro | gemini-3.1-pro | `https://opencode.ai/zen/v1/models/gemini-3.1-pro` | `@ai-sdk/google` | | Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` | | Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` | +| MiniMax M2.5 | minimax-m2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | +| MiniMax M2.5 Free | minimax-m2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` | +| GLM 5 | glm-5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | | Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` | -OpenCode 설정 파일에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/<model-id>` 형식을 따릅니다. +OpenCode 설정 파일에서 사용하는 [모델 ID](/docs/config/#models)는 `opencode/<model-id>` 형식을 따릅니다. 예를 들어 GPT 5.2 Codex의 경우 설정에서 `opencode/gpt-5.2-codex`와 같이 사용합니다. --- @@ -107,29 +110,34 @@ https://opencode.ai/zen/v1/models | 모델 | 입력 | 출력 | 캐시 읽기 | 캐시 쓰기 | | --------------------------------- | ------ | ------ | --------- | --------- | | Big Pickle | Free | Free | Free | - | -| MiniMax M2.1 Free | Free | Free | Free | - | +| MiniMax M2.5 Free | Free | Free | Free | - | +| MiniMax M2.5 | $0.30 | $1.20 | $0.06 | - | | MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - | -| GLM 4.7 Free | Free | Free | Free | - | +| GLM 5 | $1.00 | $3.20 | $0.20 | - | | GLM 4.7 | $0.60 | $2.20 | $0.10 | - | | GLM 4.6 | $0.60 | $2.20 | $0.10 | - | -| Kimi K2.5 Free | Free | Free | Free | - | | Kimi K2.5 | $0.60 | $3.00 | $0.08 | - | | Kimi K2 Thinking | $0.40 | $2.50 | - | - | | Kimi K2 | $0.40 | $2.50 | - | - | | Qwen3 Coder 480B | $0.45 | $1.50 | - | - | +| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 | +| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | +| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Claude Sonnet 4.6 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | +| Claude Sonnet 4.6 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 | | Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 | | Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 | | Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 | -| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 | -| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 | -| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 | +| Gemini 3.1 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | +| Gemini 3.1 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - | | Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - | | Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - | +| GPT 5.3 Codex | $1.75 | $14.00 | $0.175 | - | | GPT 5.2 | $1.75 | $14.00 | $0.175 | - | | GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - | | GPT 5.1 | $1.07 | $8.50 | $0.107 | - | @@ -148,8 +156,6 @@ https://opencode.ai/zen/v1/models 무료 모델: -- GLM 5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다. -- Kimi K2.5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다. - MiniMax M2.5 Free는 한정된 기간 동안 OpenCode에서 제공됩니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다. - Big Pickle은 한정된 기간 동안 OpenCode에서 무료로 제공되는 스텔스 모델입니다. 해당 기간 동안 팀은 사용자 피드백을 수집하고 모델을 개선할 예정입니다. @@ -169,7 +175,7 @@ https://opencode.ai/zen/v1/models 워크스페이스 전체 및 각 팀 구성원별로 월간 사용 한도를 설정할 수 있습니다. -예를 들어 월간 사용 한도를 $20로 설정한 경우, Zen은 한 달 동안 $20을 초과하여 사용하지 않습니다. +예를 들어 월간 사용 한도를 $20로 설정한 경우, Zen은 한 달 동안 $20을 초과하여 사용하지 않습니다. 다만 자동 충전이 활성화되어 있는 경우, 잔액이 $5 미만으로 내려가면 자동으로 충전이 이루어질 수 있으므로 실제 청구 금액이 $20을 초과할 수 있습니다. --- @@ -179,8 +185,6 @@ https://opencode.ai/zen/v1/models 당사의 모든 모델은 미국에서 호스팅됩니다. 당사 제공자는 데이터 무보존(zero-retention) 정책을 따르며, 아래의 예외를 제외하고는 귀하의 데이터를 모델 학습에 사용하지 않습니다. - Big Pickle: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다. -- GLM 5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다. -- Kimi K2.5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다. - MiniMax M2.5 Free: 무료 제공 기간 동안 수집된 데이터는 모델 개선을 위해 사용될 수 있습니다. - OpenAI APIs: 요청 데이터는 [OpenAI의 데이터 정책](https://platform.openai.com/docs/guides/your-data)에 따라 30일간 보관됩니다. - Anthropic APIs: 요청 데이터는 [Anthropic의 데이터 정책](https://docs.anthropic.com/en/docs/claude-code/data-usage)에 따라 30일간 보관됩니다. |
