엔진 게이트웨이 계약 고정
This commit is contained in:
parent
ebef20560e
commit
f0771db919
8 changed files with 1123 additions and 72 deletions
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"version": 1,
|
||||
"generate_request": {
|
||||
"ai_role": "client",
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "Keep replies concise.",
|
||||
"cache": true
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "hello",
|
||||
"cache": false
|
||||
}
|
||||
],
|
||||
"model": "gateway-default",
|
||||
"max_tokens": 256,
|
||||
"temperature": 0.4,
|
||||
"structured_schema": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"reply": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"reply"
|
||||
],
|
||||
"additionalProperties": false
|
||||
},
|
||||
"session_id": "contract-session-1",
|
||||
"metadata": {
|
||||
"trace_id": "trace-001",
|
||||
"route": "golden"
|
||||
}
|
||||
},
|
||||
"generate_response": {
|
||||
"text": "{\"reply\":\"hello\"}",
|
||||
"model": "claude-opus-4-8",
|
||||
"provider": "claude_cli",
|
||||
"tokens_in": 11,
|
||||
"tokens_out": 7,
|
||||
"cost_usd": 0.0123,
|
||||
"inference_geo": "us",
|
||||
"structured": {
|
||||
"reply": "hello"
|
||||
}
|
||||
},
|
||||
"stream_frames": [
|
||||
"event: token\ndata: {\"text\":\"hel\"}\n\n",
|
||||
"event: token\ndata: {\"text\":\"lo\"}\n\n",
|
||||
"event: done\ndata: {\"provider\":\"claude_cli\",\"model\":\"claude-opus-4-8\",\"tokens_in\":11,\"tokens_out\":7,\"cost_usd\":0.0123,\"turns\":2}\n\n",
|
||||
"event: error\ndata: {\"detail\":\"engine failed\"}\n\n"
|
||||
],
|
||||
"stream_packets": [
|
||||
{
|
||||
"event": "token",
|
||||
"payload": {
|
||||
"text": "hel"
|
||||
}
|
||||
},
|
||||
{
|
||||
"event": "token",
|
||||
"payload": {
|
||||
"text": "lo"
|
||||
}
|
||||
},
|
||||
{
|
||||
"event": "done",
|
||||
"payload": {
|
||||
"provider": "claude_cli",
|
||||
"model": "claude-opus-4-8",
|
||||
"tokens_in": 11,
|
||||
"tokens_out": 7,
|
||||
"cost_usd": 0.0123,
|
||||
"turns": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"event": "error",
|
||||
"payload": {
|
||||
"detail": "engine failed"
|
||||
}
|
||||
}
|
||||
],
|
||||
"compatibility_lines": [
|
||||
"data: [DONE]"
|
||||
]
|
||||
}
|
||||
333
apps/api/engine_gateway/golden/engine_gateway_schema.v1.json
Normal file
333
apps/api/engine_gateway/golden/engine_gateway_schema.v1.json
Normal file
|
|
@ -0,0 +1,333 @@
|
|||
{
|
||||
"$defs": {
|
||||
"EngineMessage": {
|
||||
"properties": {
|
||||
"cache": {
|
||||
"default": false,
|
||||
"title": "Cache",
|
||||
"type": "boolean"
|
||||
},
|
||||
"content": {
|
||||
"title": "Content",
|
||||
"type": "string"
|
||||
},
|
||||
"role": {
|
||||
"enum": [
|
||||
"system",
|
||||
"user",
|
||||
"assistant"
|
||||
],
|
||||
"title": "Role",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"role",
|
||||
"content"
|
||||
],
|
||||
"title": "EngineMessage",
|
||||
"type": "object"
|
||||
},
|
||||
"GenerateRequest": {
|
||||
"properties": {
|
||||
"ai_role": {
|
||||
"default": "client",
|
||||
"enum": [
|
||||
"client",
|
||||
"counselor",
|
||||
"evaluator"
|
||||
],
|
||||
"title": "Ai Role",
|
||||
"type": "string"
|
||||
},
|
||||
"max_tokens": {
|
||||
"default": 1024,
|
||||
"title": "Max Tokens",
|
||||
"type": "integer"
|
||||
},
|
||||
"messages": {
|
||||
"items": {
|
||||
"$ref": "#/$defs/EngineMessage"
|
||||
},
|
||||
"title": "Messages",
|
||||
"type": "array"
|
||||
},
|
||||
"metadata": {
|
||||
"title": "Metadata",
|
||||
"type": "object"
|
||||
},
|
||||
"model": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Model"
|
||||
},
|
||||
"session_id": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Session Id"
|
||||
},
|
||||
"structured_schema": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Structured Schema"
|
||||
},
|
||||
"temperature": {
|
||||
"default": 0.7,
|
||||
"title": "Temperature",
|
||||
"type": "number"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"messages"
|
||||
],
|
||||
"title": "GenerateRequest",
|
||||
"type": "object"
|
||||
},
|
||||
"GenerateResponse": {
|
||||
"properties": {
|
||||
"cost_usd": {
|
||||
"default": 0.0,
|
||||
"title": "Cost Usd",
|
||||
"type": "number"
|
||||
},
|
||||
"inference_geo": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "string"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Inference Geo"
|
||||
},
|
||||
"model": {
|
||||
"title": "Model",
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"title": "Provider",
|
||||
"type": "string"
|
||||
},
|
||||
"structured": {
|
||||
"anyOf": [
|
||||
{
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"type": "null"
|
||||
}
|
||||
],
|
||||
"default": null,
|
||||
"title": "Structured"
|
||||
},
|
||||
"text": {
|
||||
"title": "Text",
|
||||
"type": "string"
|
||||
},
|
||||
"tokens_in": {
|
||||
"default": 0,
|
||||
"title": "Tokens In",
|
||||
"type": "integer"
|
||||
},
|
||||
"tokens_out": {
|
||||
"default": 0,
|
||||
"title": "Tokens Out",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"text",
|
||||
"model",
|
||||
"provider"
|
||||
],
|
||||
"title": "GenerateResponse",
|
||||
"type": "object"
|
||||
},
|
||||
"StreamDoneEvent": {
|
||||
"properties": {
|
||||
"cost_usd": {
|
||||
"default": 0.0,
|
||||
"title": "Cost Usd",
|
||||
"type": "number"
|
||||
},
|
||||
"model": {
|
||||
"title": "Model",
|
||||
"type": "string"
|
||||
},
|
||||
"provider": {
|
||||
"title": "Provider",
|
||||
"type": "string"
|
||||
},
|
||||
"tokens_in": {
|
||||
"default": 0,
|
||||
"title": "Tokens In",
|
||||
"type": "integer"
|
||||
},
|
||||
"tokens_out": {
|
||||
"default": 0,
|
||||
"title": "Tokens Out",
|
||||
"type": "integer"
|
||||
},
|
||||
"turns": {
|
||||
"default": 0,
|
||||
"title": "Turns",
|
||||
"type": "integer"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"provider",
|
||||
"model"
|
||||
],
|
||||
"title": "StreamDoneEvent",
|
||||
"type": "object"
|
||||
},
|
||||
"StreamErrorEvent": {
|
||||
"properties": {
|
||||
"detail": {
|
||||
"title": "Detail",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"detail"
|
||||
],
|
||||
"title": "StreamErrorEvent",
|
||||
"type": "object"
|
||||
},
|
||||
"StreamPacket": {
|
||||
"oneOf": [
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"event": {
|
||||
"const": "token"
|
||||
},
|
||||
"payload": {
|
||||
"$ref": "#/$defs/StreamTokenEvent"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"event",
|
||||
"payload"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"event": {
|
||||
"const": "done"
|
||||
},
|
||||
"payload": {
|
||||
"$ref": "#/$defs/StreamDoneEvent"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"event",
|
||||
"payload"
|
||||
],
|
||||
"type": "object"
|
||||
},
|
||||
{
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"event": {
|
||||
"const": "error"
|
||||
},
|
||||
"payload": {
|
||||
"$ref": "#/$defs/StreamErrorEvent"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"event",
|
||||
"payload"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
||||
]
|
||||
},
|
||||
"StreamTokenEvent": {
|
||||
"properties": {
|
||||
"text": {
|
||||
"title": "Text",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"text"
|
||||
],
|
||||
"title": "StreamTokenEvent",
|
||||
"type": "object"
|
||||
}
|
||||
},
|
||||
"$id": "https://vignette.local/schemas/engine_gateway_contract.v1.json",
|
||||
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"compatibility_lines": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"generate_request": {
|
||||
"$ref": "#/$defs/GenerateRequest"
|
||||
},
|
||||
"generate_response": {
|
||||
"$ref": "#/$defs/GenerateResponse"
|
||||
},
|
||||
"stream_frames": {
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"stream_packets": {
|
||||
"items": {
|
||||
"$ref": "#/$defs/StreamPacket"
|
||||
},
|
||||
"type": "array"
|
||||
},
|
||||
"version": {
|
||||
"const": 1
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"version",
|
||||
"generate_request",
|
||||
"generate_response",
|
||||
"stream_frames",
|
||||
"stream_packets",
|
||||
"compatibility_lines"
|
||||
],
|
||||
"title": "EngineGatewayGoldenContract",
|
||||
"type": "object",
|
||||
"x-engine-gateway-sse-events": [
|
||||
"token",
|
||||
"done",
|
||||
"error"
|
||||
]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue