mirror of
https://github.com/danielmiessler/Fabric.git
synced 2026-01-09 22:38:10 -05:00
feat: add support for Anthropic Claude 4 models and update SDK to v1.2.0
CHANGES - Upgrade `anthropic-sdk-go` dependency to version `v1.2.0`. - Integrate new Anthropic Claude 4 Opus and Sonnet models. - Remove deprecated Claude 2.0 and 2.1 models from list. - Adjust model type casting for `anthropic-sdk-go v1.2.0` compatibility. - Refresh README: announce Claude 4, update date, fix links.
This commit is contained in:
@@ -20,8 +20,8 @@ Fabric is graciously supported by…
|
|||||||
[Updates](#updates) •
|
[Updates](#updates) •
|
||||||
[What and Why](#what-and-why) •
|
[What and Why](#what-and-why) •
|
||||||
[Philosophy](#philosophy) •
|
[Philosophy](#philosophy) •
|
||||||
[Installation](#Installation) •
|
[Installation](#installation) •
|
||||||
[Usage](#Usage) •
|
[Usage](#usage) •
|
||||||
[Examples](#examples) •
|
[Examples](#examples) •
|
||||||
[Just Use the Patterns](#just-use-the-patterns) •
|
[Just Use the Patterns](#just-use-the-patterns) •
|
||||||
[Custom Patterns](#custom-patterns) •
|
[Custom Patterns](#custom-patterns) •
|
||||||
@@ -87,9 +87,9 @@ Fabric is graciously supported by…
|
|||||||
## Updates
|
## Updates
|
||||||
|
|
||||||
> [!NOTE]
|
> [!NOTE]
|
||||||
> April 16, 2025
|
> May 22, 2025
|
||||||
>
|
>
|
||||||
> - Fabric now supports Grok (from XAI)! Update and use `-S` to select it as your default if you want, or just use the shortcut `-m grok-3-beta`. Enjoy!
|
> - Fabric now supports Anthropic's Claude 4. Read the [blog post from Anthropic](https://www.anthropic.com/news/claude-4).
|
||||||
|
|
||||||
## What and why
|
## What and why
|
||||||
|
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -6,7 +6,7 @@ toolchain go1.24.2
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/anaskhan96/soup v1.2.5
|
github.com/anaskhan96/soup v1.2.5
|
||||||
github.com/anthropics/anthropic-sdk-go v0.2.0-beta.3
|
github.com/anthropics/anthropic-sdk-go v1.2.0
|
||||||
github.com/atotto/clipboard v0.1.4
|
github.com/atotto/clipboard v0.1.4
|
||||||
github.com/gabriel-vasile/mimetype v1.4.9
|
github.com/gabriel-vasile/mimetype v1.4.9
|
||||||
github.com/gin-gonic/gin v1.10.0
|
github.com/gin-gonic/gin v1.10.0
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -23,8 +23,8 @@ github.com/andybalholm/cascadia v1.3.3 h1:AG2YHrzJIm4BZ19iwJ/DAua6Btl3IwJX+VI4kk
|
|||||||
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
|
github.com/andybalholm/cascadia v1.3.3/go.mod h1:xNd9bqTn98Ln4DwST8/nG+H0yuB8Hmgu1YHNnWw0GeA=
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8=
|
||||||
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4=
|
||||||
github.com/anthropics/anthropic-sdk-go v0.2.0-beta.3 h1:b5t1ZJMvV/l99y4jbz7kRFdUp3BSDkI8EhSlHczivtw=
|
github.com/anthropics/anthropic-sdk-go v1.2.0 h1:RQzJUqaROewrPTl7Rl4hId/TqmjFvfnkmhHJ6pP1yJ8=
|
||||||
github.com/anthropics/anthropic-sdk-go v0.2.0-beta.3/go.mod h1:AapDW22irxK2PSumZiQXYUFvsdQgkwIWlpESweWZI/c=
|
github.com/anthropics/anthropic-sdk-go v1.2.0/go.mod h1:AapDW22irxK2PSumZiQXYUFvsdQgkwIWlpESweWZI/c=
|
||||||
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
|
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de h1:FxWPpzIjnTlhPwqqXc4/vE0f7GvRjuAsbW+HOIe8KnA=
|
||||||
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
|
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de/go.mod h1:DCaWoUhZrYW9p1lxo/cm8EmUOOzAPSEZNGF2DK1dJgw=
|
||||||
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio=
|
||||||
|
|||||||
@@ -31,13 +31,12 @@ func NewClient() (ret *Client) {
|
|||||||
ret.maxTokens = 4096
|
ret.maxTokens = 4096
|
||||||
ret.defaultRequiredUserMessage = "Hi"
|
ret.defaultRequiredUserMessage = "Hi"
|
||||||
ret.models = []string{
|
ret.models = []string{
|
||||||
anthropic.ModelClaude3_7SonnetLatest, anthropic.ModelClaude3_7Sonnet20250219,
|
string(anthropic.ModelClaude3_7SonnetLatest), string(anthropic.ModelClaude3_7Sonnet20250219),
|
||||||
anthropic.ModelClaude3_5HaikuLatest, anthropic.ModelClaude3_5Haiku20241022,
|
string(anthropic.ModelClaude3_5HaikuLatest), string(anthropic.ModelClaude3_5Haiku20241022),
|
||||||
anthropic.ModelClaude3_5SonnetLatest, anthropic.ModelClaude3_5Sonnet20241022,
|
string(anthropic.ModelClaude3_5SonnetLatest), string(anthropic.ModelClaude3_5Sonnet20241022),
|
||||||
anthropic.ModelClaude_3_5_Sonnet_20240620, anthropic.ModelClaude3OpusLatest,
|
string(anthropic.ModelClaude_3_5_Sonnet_20240620), string(anthropic.ModelClaude3OpusLatest),
|
||||||
anthropic.ModelClaude_3_Opus_20240229, anthropic.ModelClaude_3_Sonnet_20240229,
|
string(anthropic.ModelClaude_3_Opus_20240229), string(anthropic.ModelClaude_3_Haiku_20240307),
|
||||||
anthropic.ModelClaude_3_Haiku_20240307, anthropic.ModelClaude_2_1,
|
string(anthropic.ModelClaudeOpus4_20250514), string(anthropic.ModelClaudeSonnet4_20250514),
|
||||||
anthropic.ModelClaude_2_0,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
@@ -92,7 +91,7 @@ func (an *Client) SendStream(
|
|||||||
|
|
||||||
ctx := context.Background()
|
ctx := context.Background()
|
||||||
stream := an.client.Messages.NewStreaming(ctx, anthropic.MessageNewParams{
|
stream := an.client.Messages.NewStreaming(ctx, anthropic.MessageNewParams{
|
||||||
Model: opts.Model,
|
Model: anthropic.Model(opts.Model),
|
||||||
MaxTokens: int64(an.maxTokens),
|
MaxTokens: int64(an.maxTokens),
|
||||||
TopP: anthropic.Opt(opts.TopP),
|
TopP: anthropic.Opt(opts.TopP),
|
||||||
Temperature: anthropic.Opt(opts.Temperature),
|
Temperature: anthropic.Opt(opts.Temperature),
|
||||||
@@ -124,7 +123,7 @@ func (an *Client) Send(ctx context.Context, msgs []*goopenai.ChatCompletionMessa
|
|||||||
|
|
||||||
var message *anthropic.Message
|
var message *anthropic.Message
|
||||||
if message, err = an.client.Messages.New(ctx, anthropic.MessageNewParams{
|
if message, err = an.client.Messages.New(ctx, anthropic.MessageNewParams{
|
||||||
Model: opts.Model,
|
Model: anthropic.Model(opts.Model),
|
||||||
MaxTokens: int64(an.maxTokens),
|
MaxTokens: int64(an.maxTokens),
|
||||||
TopP: anthropic.Opt(opts.TopP),
|
TopP: anthropic.Opt(opts.TopP),
|
||||||
Temperature: anthropic.Opt(opts.Temperature),
|
Temperature: anthropic.Opt(opts.Temperature),
|
||||||
|
|||||||
Reference in New Issue
Block a user