@@ -41,7 +41,7 @@ import type { CandidateData, ToolDefinition } from 'genkit/model';
41
41
42
42
import type { AnthropicConfigSchema } from './claude' ;
43
43
import {
44
- claude3Haiku ,
44
+ claude35Haiku ,
45
45
claudeModel ,
46
46
claudeRunner ,
47
47
fromAnthropicContentBlockChunk ,
@@ -678,7 +678,40 @@ describe('toAnthropicRequestBody', () => {
678
678
role : 'user' ,
679
679
} ,
680
680
] ,
681
- model : 'claude-3-5-sonnet-20240620' ,
681
+ model : 'claude-3-5-sonnet-latest' ,
682
+ metadata : {
683
+ user_id : 'exampleUser123' ,
684
+ } ,
685
+ } ,
686
+ } ,
687
+ {
688
+ should : '(claude-3-5-haiku) handles request with text messages' ,
689
+ modelName : 'claude-3-5-haiku' ,
690
+ genkitRequest : {
691
+ messages : [
692
+ { role : 'user' , content : [ { text : 'Tell a joke about dogs.' } ] } ,
693
+ ] ,
694
+ output : { format : 'text' } ,
695
+ config : {
696
+ metadata : {
697
+ user_id : 'exampleUser123' ,
698
+ } ,
699
+ } ,
700
+ } ,
701
+ expectedOutput : {
702
+ max_tokens : 4096 ,
703
+ messages : [
704
+ {
705
+ content : [
706
+ {
707
+ text : 'Tell a joke about dogs.' ,
708
+ type : 'text' ,
709
+ } ,
710
+ ] ,
711
+ role : 'user' ,
712
+ } ,
713
+ ] ,
714
+ model : 'claude-3-5-haiku-latest' ,
682
715
metadata : {
683
716
user_id : 'exampleUser123' ,
684
717
} ,
@@ -804,7 +837,7 @@ describe('toAnthropicRequestBody', () => {
804
837
805
838
it ( 'should throw if output format is not text' , ( ) => {
806
839
expect ( ( ) =>
807
- toAnthropicRequestBody ( 'claude-3-haiku' , {
840
+ toAnthropicRequestBody ( 'claude-3-5- haiku' , {
808
841
messages : [ ] ,
809
842
tools : [ ] ,
810
843
output : { format : 'media' } ,
@@ -825,7 +858,7 @@ describe('toAnthropicRequestBody', () => {
825
858
826
859
// Test with caching enabled
827
860
const outputWithCaching = toAnthropicRequestBody (
828
- 'claude-3-haiku' ,
861
+ 'claude-3-5- haiku' ,
829
862
request ,
830
863
false ,
831
864
true
@@ -840,7 +873,7 @@ describe('toAnthropicRequestBody', () => {
840
873
841
874
// Test with caching disabled
842
875
const outputWithoutCaching = toAnthropicRequestBody (
843
- 'claude-3-haiku' ,
876
+ 'claude-3-5- haiku' ,
844
877
request ,
845
878
false ,
846
879
false
@@ -863,12 +896,12 @@ describe('claudeRunner', () => {
863
896
} ,
864
897
} ;
865
898
const runner = claudeRunner (
866
- 'claude-3-haiku' ,
899
+ 'claude-3-5- haiku' ,
867
900
anthropicClient as unknown as Anthropic
868
901
) ;
869
902
await runner ( { messages : [ ] } ) ;
870
903
expect ( anthropicClient . messages . create ) . toHaveBeenCalledWith ( {
871
- model : 'claude-3-haiku-20240307 ' ,
904
+ model : 'claude-3-5- haiku-latest ' ,
872
905
max_tokens : 4096 ,
873
906
} ) ;
874
907
} ) ;
@@ -916,12 +949,12 @@ describe('claudeRunner', () => {
916
949
} ;
917
950
const streamingCallback = jest . fn ( ) ;
918
951
const runner = claudeRunner (
919
- 'claude-3-haiku' ,
952
+ 'claude-3-5- haiku' ,
920
953
anthropicClient as unknown as Anthropic
921
954
) ;
922
955
await runner ( { messages : [ ] } , streamingCallback ) ;
923
956
expect ( anthropicClient . messages . stream ) . toHaveBeenCalledWith ( {
924
- model : 'claude-3-haiku-20240307 ' ,
957
+ model : 'claude-3-5- haiku-latest ' ,
925
958
max_tokens : 4096 ,
926
959
stream : true ,
927
960
} ) ;
@@ -943,12 +976,12 @@ describe('claudeModel', () => {
943
976
944
977
it ( 'should correctly define supported Claude models' , ( ) => {
945
978
jest . spyOn ( ai , 'defineModel' ) . mockImplementation ( ( ( ) => ( { } ) ) as any ) ;
946
- claudeModel ( ai , 'claude-3-haiku' , { } as Anthropic ) ;
979
+ claudeModel ( ai , 'claude-3-5- haiku' , { } as Anthropic ) ;
947
980
expect ( ai . defineModel ) . toHaveBeenCalledWith (
948
981
{
949
- name : claude3Haiku . name ,
950
- ...claude3Haiku . info ,
951
- configSchema : claude3Haiku . configSchema ,
982
+ name : claude35Haiku . name ,
983
+ ...claude35Haiku . info ,
984
+ configSchema : claude35Haiku . configSchema ,
952
985
} ,
953
986
expect . any ( Function )
954
987
) ;
0 commit comments