X-Git-Url: https://git.giacomolli.uk/onechat/blobdiff_plain/f5c601f1801aaa276f8c335fcb51c373edc0b50c..496569ab5b179932c60b2924bf4c61176c8be004:/chain.go?ds=sidebyside diff --git a/chain.go b/chain.go index 59ce563..f201812 100644 --- a/chain.go +++ b/chain.go @@ -22,10 +22,10 @@ type ChainClient interface { // answer. The replies, the tool calls, and the results go to the log of tools // as they happen. The thoughts never do. // -// Each later request begins with the whole input of the request before it, -// then its output items, then the tool results. The output items hold the -// reasoning with its encrypted content, because the calls do not store it. So -// each request begins with all of the previous one and reads it from the prompt +// Each later request begins with the whole input of the request before it, then +// its output items, then the tool results. The output items hold the reasoning +// with its encrypted content, because the calls do not store it. So each +// request begins with all of the previous one and reads it from the prompt // cache. The messages of take join each later request after the tool results. type Chain struct { client ChainClient @@ -43,8 +43,7 @@ type ChainFunctionCall struct { CallID string `json:"call_id"` } -// ChainFunctionCallOutput is the input item with the result of a function -// call. +// ChainFunctionCallOutput is the input item with the result of a function call. type ChainFunctionCallOutput struct { Type string `json:"type"` CallID string `json:"call_id"` @@ -52,8 +51,7 @@ type ChainFunctionCallOutput struct { } // Run runs the chain from input, the input of its first request, and returns -// the text of the final answer. An error of a log write wraps -// errChainLogWrite. +// the text of the final answer. An error of a log write wraps errChainLogWrite. func (c *Chain) Run(ctx context.Context, input []any) (string, error) { request := c.request for request.Turn = "first"; ; request.Turn = "next" { @@ -77,9 +75,9 @@ func (c *Chain) Run(ctx context.Context, input []any) (string, error) { } // handle logs the replies of response and runs its tool calls. It returns the -// input of the next request: input, the output items, the tool results, and -// the messages of take. After the final answer it returns no input, and the -// replies of the answer as its text. +// input of the next request: input, the output items, the tool results, and the +// messages of take. After the final answer it returns no input, and the replies +// of the answer as its text. func (c *Chain) handle(ctx context.Context, input []any, response ModelResponse) ([]any, string, error) { var ( outputs []any