docs: update dev-corp openai compatible call guide and pi settings guide
This commit is contained in:
parent
14c88c32aa
commit
ddcc4f42f8
2 changed files with 5 additions and 46 deletions
|
|
@ -14,50 +14,6 @@ dev-corp `gemma4:26b` 모델을 OpenAI-compatible 방식으로 직접 호출할
|
|||
|
||||
`/v1/responses`가 아니라 `/v1/chat/completions`를 사용한다.
|
||||
|
||||
## Pi 설정
|
||||
|
||||
현재 호스트의 Pi dev-corp profile은 `~/.pi/agent/settings.json`과 `~/.pi/agent/models.json`을 기준으로 한다.
|
||||
|
||||
필수 기본값:
|
||||
|
||||
| 항목 | 값 |
|
||||
| --- | --- |
|
||||
| `defaultProvider` | `dev-corp` |
|
||||
| `defaultModel` | `gemma4:26b` |
|
||||
| `defaultThinkingLevel` | `high` |
|
||||
| `extensions` | `extensions/dev-corp-temperature.ts` |
|
||||
|
||||
Pi `0.80.3`의 `models.json` provider/model schema에는 고정 sampling parameter 필드가 없다. dev-corp Pi 호출의 `temperature`와 `top_p`는 전역 extension `~/.pi/agent/extensions/dev-corp-temperature.ts`의 `before_provider_request` hook에서 적용한다.
|
||||
|
||||
```typescript
|
||||
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
|
||||
|
||||
const DEV_CORP_PROVIDER = "dev-corp";
|
||||
const DEV_CORP_TEMPERATURE = 0.2;
|
||||
const DEV_CORP_TOP_P = 0.95;
|
||||
|
||||
function isRecord(value: unknown): value is Record<string, unknown> {
|
||||
return typeof value === "object" && value !== null && !Array.isArray(value);
|
||||
}
|
||||
|
||||
export default function (pi: ExtensionAPI) {
|
||||
pi.on("before_provider_request", (event, ctx) => {
|
||||
if (ctx.model?.provider !== DEV_CORP_PROVIDER) return;
|
||||
if (!isRecord(event.payload)) return;
|
||||
|
||||
return {
|
||||
...event.payload,
|
||||
temperature: DEV_CORP_TEMPERATURE,
|
||||
top_p: DEV_CORP_TOP_P,
|
||||
};
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
이 hook은 provider가 `dev-corp`일 때만 요청 payload에 `temperature: 0.2`, `top_p: 0.95`를 추가한다. `dev-corp-direct`, `dev-corp-spark01` 같은 direct provider에는 적용하지 않는다.
|
||||
|
||||
이미 실행 중인 Pi session에는 `/reload` 또는 재시작 후 반영한다.
|
||||
|
||||
## 권장 요청
|
||||
|
||||
기본 권장 호출은 `stream:true`다. `think`, `reasoning_effort`, `thinking_token_budget`은 보내지 않는다.
|
||||
|
|
@ -96,8 +52,8 @@ curl -fsS http://digitalplatform-iop.cloud:18086/v1/chat/completions \
|
|||
| --- | --- |
|
||||
| `model` | `gemma4:26b` |
|
||||
| `stream` | 기본 `true`, 필요하면 `false` |
|
||||
| `temperature` | Pi dev-corp profile은 extension으로 `0.2` 고정 |
|
||||
| `top_p` | Pi dev-corp profile은 extension으로 `0.95` 고정 |
|
||||
| `temperature` | 최소 기준 `0.2` |
|
||||
| `top_p` | 최소 기준 `0.95` |
|
||||
| `think` | 생략 |
|
||||
| `reasoning_effort` | 생략 |
|
||||
| `thinking_token_budget` | 생략 |
|
||||
|
|
|
|||
|
|
@ -96,6 +96,8 @@ export default function (pi: ExtensionAPI) {
|
|||
|
||||
이 extension은 provider가 `dev-corp`일 때만 요청 payload에 `temperature: 0.2`, `top_p: 0.95`를 추가한다. `dev-corp-direct`, `dev-corp-spark01` 같은 direct provider에는 적용하지 않는다.
|
||||
|
||||
반복 출력 loop를 피하기 위한 Pi dev-corp profile의 최소 기준은 `temperature: 0.2`, `top_p: 0.95`다. 그래도 repetition loop가 발생하면 extension의 `DEV_CORP_TEMPERATURE`는 조금씩 올리고 `DEV_CORP_TOP_P`는 조금씩 낮추는 방향으로 조정한다.
|
||||
|
||||
## models.json
|
||||
|
||||
`apiKey`에는 실제 토큰을 넣는다. 토큰은 문서, 로그, 공유 화면에 남기지 않는다.
|
||||
|
|
@ -144,6 +146,7 @@ export default function (pi: ExtensionAPI) {
|
|||
- `supportsReasoningEffort`는 `false`로 둔다.
|
||||
- `think=false`, `reasoning_effort=none`, `thinking_token_budget`을 강제로 추가하지 않는다.
|
||||
- dev-corp Pi 호출 sampling parameter는 `~/.pi/agent/extensions/dev-corp-temperature.ts`로 `temperature: 0.2`, `top_p: 0.95`를 주입한다.
|
||||
- repetition loop가 계속 발생하면 extension에서 temperature는 올리고 top_p는 낮추는 방향으로 조정한다.
|
||||
- Pi는 `openai-completions` 기준으로 streaming 호출을 기본 사용한다. non-stream이 필요한 경우는 Pi가 아니라 일반 OpenAI-compatible 호출에서 `stream:false`로 선택한다.
|
||||
- reasoning 표시 여부는 Pi UI나 client 표시 정책에서 선택적으로 처리한다.
|
||||
- 이미 실행 중인 Pi session에는 `/reload` 또는 재시작 후 extension 변경을 반영한다.
|
||||
|
|
|
|||
Loading…
Reference in a new issue