]> git.giacomolli.uk - onechat/blobdiff - responses.go
Send the Telegram replies as rich messages
[onechat] / responses.go
index 3055e706eb985c06f7b0a593877d3cd8f1aa3f24..0ba4955128b491911b1f77f7d92d2ab95c930f89 100644 (file)
@@ -73,8 +73,9 @@ type Client struct {
 
 // Request is one model call. Input holds the input items in order, such as
 // userMessage values or output items of an earlier response. Node names the
-// node that a compaction builds, or is nil. It goes only to the usage file,
-// never to the endpoint.
+// node that a compaction builds, or is nil. Turn names the request of a turn:
+// first or next. Node and Turn go only to the usage file, never to the
+// endpoint.
 type Request struct {
        Model        string
        Effort       string
@@ -82,6 +83,7 @@ type Request struct {
        Tools        []Tool
        Input        []any
        Node         *nodeKey
+       Turn         string
 }
 
 // Tool is the definition of a function tool.
@@ -258,6 +260,7 @@ func (c *Client) Create(ctx context.Context, request Request) (Response, error)
                record.Node = &[2]int{request.Node.level, request.Node.index}
        }
 
+       record.Turn = request.Turn
        response, err := c.send(httpRequest, &record)
        if err != nil {
                record.Error = err.Error()
@@ -306,13 +309,14 @@ type usageLog struct {
 // usageRecord is one line of usage.jsonl. Date is the start of the call, and
 // Seconds its length. Node is the node [l, i] of a compaction. Status is the
 // HTTP status, or 0 when no response came. TextBytes is the size of the text of
-// the reply. Quota holds the x-codex-* headers of the response, without the
+// the reply. Turn names the request of a turn. Quota holds the x-codex-* headers of the response, without the
 // turn state.
 type usageRecord struct {
        Date         string            `json:"date"`
        Seconds      float64           `json:"seconds"`
        Model        string            `json:"model"`
        Node         *[2]int           `json:"node,omitempty"`
+       Turn         string            `json:"turn,omitempty"`
        Status       int               `json:"status"`
        InputTokens  int               `json:"input_tokens"`
        CachedTokens int               `json:"cached_tokens"`