1+ import { ActionSdk , HerculesFunctionContext } from "@code0-tech/hercules" ;
2+ import { Model } from "../../types/aiModel" ;
3+
4+
5+ export default ( sdk : ActionSdk ) => {
6+ return sdk . registerRuntimeFunctionDefinitions ( {
7+ definition : {
8+ runtimeName : "createModel" ,
9+ signature : "(settings: object, maxOutputTokens?: number, temperature?: number, maxRetries?: number, stopSequences?: string[], presencePenalty?: number, frequencyPenalty?: number, seed?: number) => AI_MODEL" ,
10+ parameters : [
11+ {
12+ runtimeName : "provider" ,
13+ } ,
14+ {
15+ runtimeName : "model" ,
16+ } ,
17+ {
18+ runtimeName : "settings" ,
19+ } ,
20+ {
21+ runtimeName : "maxOutputTokens"
22+ } ,
23+ {
24+ runtimeName : "temperature"
25+ } ,
26+ {
27+ runtimeName : "maxRetries"
28+ } ,
29+ {
30+ runtimeName : "stopSequences"
31+ } ,
32+ {
33+ runtimeName : "presencePenalty"
34+ } ,
35+ {
36+ runtimeName : "frequencyPenalty"
37+ } ,
38+ {
39+ runtimeName : "seed"
40+ }
41+ ] ,
42+ } ,
43+ handler : ( provider : Model [ "provider" ] ,
44+ model : Model [ "model" ] ,
45+ maxOutputTokens ?: Model [ "maxOutputTokens" ] ,
46+ temperature ?: Model [ "temperature" ] ,
47+ maxRetries ?: Model [ "maxRetries" ] ,
48+ stopSequences ?: Model [ "stopSequences" ] ,
49+ presencePenalty ?: Model [ "presencePenalty" ] ,
50+ frequencyPenalty ?: Model [ "frequencyPenalty" ] ,
51+ seed ?: Model [ "seed" ]
52+ ) : Model => {
53+ return {
54+ provider : provider ,
55+ model : model ,
56+ maxOutputTokens : maxOutputTokens ,
57+ frequencyPenalty : frequencyPenalty ,
58+ presencePenalty : presencePenalty ,
59+ stopSequences : stopSequences ,
60+ temperature : temperature ,
61+ maxRetries : maxRetries ,
62+ seed : seed
63+ }
64+ }
65+ } )
66+ }
0 commit comments