Files
mistral-go-sdk/fim_complete.go
vikingowl 2b980e14b3 fix: post-review fixes — metadata, unknown types, typed tools, API polish
1. Add README, LICENSE (MIT), .gitignore, Makefile, CHANGELOG
2. Add Version constant and User-Agent header to all requests
3. Rename SetStream to EnableStream (narrower API surface)
4. Fix FinishReason in CompletionStreamChoice to use typed *FinishReason
5. Type conversation entry Content as chat.Content instead of json.RawMessage
6. Graceful unknown type handling — UnknownEntry, UnknownEvent,
   UnknownChunk, UnknownMessage, UnknownAgentTool all return data
   instead of erroring on unrecognized discriminator values
7. Type agent tools with AgentTool sealed interface + UnmarshalAgentTool
8. Add pagination params to ListConversations and ListLibraries
9. Move openapi.yaml to docs/openapi.yaml
2026-03-05 20:51:24 +01:00

28 lines
845 B
Go

package mistral
import (
"context"
"somegit.dev/vikingowl/mistral-go-sdk/chat"
"somegit.dev/vikingowl/mistral-go-sdk/fim"
)
// FIMComplete sends a Fill-In-the-Middle completion request.
func (c *Client) FIMComplete(ctx context.Context, req *fim.CompletionRequest) (*chat.CompletionResponse, error) {
var resp chat.CompletionResponse
if err := c.doJSON(ctx, "POST", "/v1/fim/completions", req, &resp); err != nil {
return nil, err
}
return &resp, nil
}
// FIMCompleteStream sends a FIM request and returns a stream of chunks.
func (c *Client) FIMCompleteStream(ctx context.Context, req *fim.CompletionRequest) (*Stream[chat.CompletionChunk], error) {
req.EnableStream()
resp, err := c.doStream(ctx, "POST", "/v1/fim/completions", req)
if err != nil {
return nil, err
}
return newStream[chat.CompletionChunk](resp.Body), nil
}