mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
feat: add columns for cached tokens from aibridge (#23832)
Two new columns added to aibridge_token_usages: - cache_read_input_tokens (BIGINT, default 0) - cache_write_input_tokens (BIGINT, default 0) Migration backfills existing rows by extracting values from the metadata JSONB column (cache_read_input, input_cached, prompt_cached for reads (max value selected since only 1 should be set), cache_creation_input for writes). All references to data from metadata were updated to reference new columns. No other changes then changing where data is extracted from. Requires aibridge library version bump to include: https://github.com/coder/aibridge/pull/229 Fixes: https://github.com/coder/aibridge/issues/150
This commit is contained in:
Generated
+10
@@ -84,6 +84,8 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/interceptions \
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usages": [
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"input_tokens": 0,
|
||||
@@ -226,6 +228,8 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/sessions \
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"threads": 0,
|
||||
"token_usage_summary": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"output_tokens": 0
|
||||
}
|
||||
@@ -303,6 +307,8 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/sessions/{session_id} \
|
||||
}
|
||||
],
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -335,6 +341,8 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/sessions/{session_id} \
|
||||
"provider": "string",
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -345,6 +353,8 @@ curl -X GET http://coder-server:8080/api/v2/aibridge/sessions/{session_id} \
|
||||
}
|
||||
],
|
||||
"token_usage_summary": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
|
||||
Generated
+52
-20
@@ -350,6 +350,8 @@
|
||||
}
|
||||
],
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -504,6 +506,8 @@
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usages": [
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"input_tokens": 0,
|
||||
@@ -595,6 +599,8 @@
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usages": [
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"input_tokens": 0,
|
||||
@@ -679,6 +685,8 @@
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"threads": 0,
|
||||
"token_usage_summary": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"output_tokens": 0
|
||||
}
|
||||
@@ -787,6 +795,8 @@
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"threads": 0,
|
||||
"token_usage_summary": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"output_tokens": 0
|
||||
}
|
||||
@@ -847,6 +857,8 @@
|
||||
}
|
||||
],
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -879,6 +891,8 @@
|
||||
"provider": "string",
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -889,6 +903,8 @@
|
||||
}
|
||||
],
|
||||
"token_usage_summary": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -921,6 +937,8 @@
|
||||
|
||||
```json
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -932,17 +950,21 @@
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|--------------------|---------|----------|--------------|-------------|
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `metadata` | object | false | | |
|
||||
| » `[any property]` | any | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|----------------------------|---------|----------|--------------|-------------|
|
||||
| `cache_read_input_tokens` | integer | false | | |
|
||||
| `cache_write_input_tokens` | integer | false | | |
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `metadata` | object | false | | |
|
||||
| » `[any property]` | any | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
|
||||
## codersdk.AIBridgeSessionTokenUsageSummary
|
||||
|
||||
```json
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"output_tokens": 0
|
||||
}
|
||||
@@ -950,10 +972,12 @@
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|-----------------|---------|----------|--------------|-------------|
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|----------------------------|---------|----------|--------------|-------------|
|
||||
| `cache_read_input_tokens` | integer | false | | |
|
||||
| `cache_write_input_tokens` | integer | false | | |
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
|
||||
## codersdk.AIBridgeThread
|
||||
|
||||
@@ -968,6 +992,8 @@
|
||||
}
|
||||
],
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -1000,6 +1026,8 @@
|
||||
"provider": "string",
|
||||
"started_at": "2019-08-24T14:15:22Z",
|
||||
"token_usage": {
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"input_tokens": 0,
|
||||
"metadata": {
|
||||
"property1": null,
|
||||
@@ -1027,6 +1055,8 @@
|
||||
|
||||
```json
|
||||
{
|
||||
"cache_read_input_tokens": 0,
|
||||
"cache_write_input_tokens": 0,
|
||||
"created_at": "2019-08-24T14:15:22Z",
|
||||
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
|
||||
"input_tokens": 0,
|
||||
@@ -1042,16 +1072,18 @@
|
||||
|
||||
### Properties
|
||||
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|------------------------|---------|----------|--------------|-------------|
|
||||
| `created_at` | string | false | | |
|
||||
| `id` | string | false | | |
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `interception_id` | string | false | | |
|
||||
| `metadata` | object | false | | |
|
||||
| » `[any property]` | any | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
| `provider_response_id` | string | false | | |
|
||||
| Name | Type | Required | Restrictions | Description |
|
||||
|----------------------------|---------|----------|--------------|-------------|
|
||||
| `cache_read_input_tokens` | integer | false | | |
|
||||
| `cache_write_input_tokens` | integer | false | | |
|
||||
| `created_at` | string | false | | |
|
||||
| `id` | string | false | | |
|
||||
| `input_tokens` | integer | false | | |
|
||||
| `interception_id` | string | false | | |
|
||||
| `metadata` | object | false | | |
|
||||
| » `[any property]` | any | false | | |
|
||||
| `output_tokens` | integer | false | | |
|
||||
| `provider_response_id` | string | false | | |
|
||||
|
||||
## codersdk.AIBridgeToolCall
|
||||
|
||||
|
||||
Reference in New Issue
Block a user