diff --git a/core/fabric.go b/core/fabric.go index 5b8571b..b1d7bdb 100644 --- a/core/fabric.go +++ b/core/fabric.go @@ -3,12 +3,14 @@ package core import ( "bytes" "fmt" - "github.com/danielmiessler/fabric/vendors/groq" - goopenai "github.com/sashabaranov/go-openai" "os" "strconv" "strings" + "github.com/danielmiessler/fabric/vendors/groq" + "github.com/danielmiessler/fabric/vendors/mistral" + goopenai "github.com/sashabaranov/go-openai" + "github.com/atotto/clipboard" "github.com/danielmiessler/fabric/common" "github.com/danielmiessler/fabric/db" @@ -62,7 +64,7 @@ func NewFabricBase(db *db.Db) (ret *Fabric) { "Enter the index the name of your default model") ret.VendorsAll.AddVendors(openai.NewClient(), azure.NewClient(), ollama.NewClient(), groq.NewClient(), - gemini.NewClient(), anthropic.NewClient(), siliconcloud.NewClient(), openrouter.NewClient()) + gemini.NewClient(), anthropic.NewClient(), siliconcloud.NewClient(), openrouter.NewClient(), mistral.NewClient(), dryrun.NewClient()) return } diff --git a/go.mod b/go.mod index d86e0fa..eaf9962 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.22.5 toolchain go1.22.6 require ( + github.com/anaskhan96/soup v1.2.5 github.com/atotto/clipboard v0.1.4 github.com/go-git/go-git/v5 v5.12.0 github.com/google/generative-ai-go v0.17.0 @@ -30,7 +31,6 @@ require ( dario.cat/mergo v1.0.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect - github.com/anaskhan96/soup v1.2.5 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect diff --git a/go.sum b/go.sum index 35b6b8e..2339d12 100644 --- a/go.sum +++ b/go.sum @@ -291,8 +291,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/gookit/color.v1 v1.1.6 h1:5fB10p6AUFjhd2ayq9JgmJWr9WlTrguFdw3qlYtKNHk= -gopkg.in/gookit/color.v1 v1.1.6/go.mod h1:IcEkFGaveVShJ+j8ew+jwe9epHyGpJ9IrptHmW3laVY= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= diff --git a/vendors/mistral/mistral.go b/vendors/mistral/mistral.go new file mode 100644 index 0000000..551881a --- /dev/null +++ b/vendors/mistral/mistral.go @@ -0,0 +1,15 @@ +package mistral + +import ( + "github.com/danielmiessler/fabric/vendors/openai" +) + +func NewClient() (ret *Client) { + ret = &Client{} + ret.Client = openai.NewClientCompatible("Mistral", "https://api.mistral.ai/v1", nil) + return +} + +type Client struct { + *openai.Client +}