File tree 1 file changed +24
-2
lines changed
packages/plugin-web-search/src
1 file changed +24
-2
lines changed Original file line number Diff line number Diff line change @@ -8,8 +8,30 @@ import {
8
8
State ,
9
9
} from "@ai16z/eliza" ;
10
10
import { generateWebSearch } from "@ai16z/eliza" ;
11
-
12
11
import { SearchResult } from "@ai16z/eliza" ;
12
+ import { encodingForModel , TiktokenModel } from "js-tiktoken" ;
13
+
14
+ const DEFAULT_MAX_WEB_SEARCH_TOKENS = 4000 ;
15
+ const DEFAULT_MODEL_ENCODING = "gpt-3.5-turbo" ;
16
+
17
+ function getTotalTokensFromString (
18
+ str : string ,
19
+ encodingName : TiktokenModel = DEFAULT_MODEL_ENCODING
20
+ ) {
21
+ const encoding = encodingForModel ( encodingName ) ;
22
+ return encoding . encode ( str ) . length ;
23
+ }
24
+
25
+ function MaxTokens (
26
+ data : string ,
27
+ maxTokens : number = DEFAULT_MAX_WEB_SEARCH_TOKENS
28
+ ) : string {
29
+
30
+ if ( getTotalTokensFromString ( data ) >= maxTokens ) {
31
+ return data . slice ( 0 , maxTokens ) ;
32
+ }
33
+ return data ;
34
+ }
13
35
14
36
const webSearch : Action = {
15
37
name : "WEB_SEARCH" ,
@@ -68,7 +90,7 @@ const webSearch: Action = {
68
90
: "" ;
69
91
70
92
callback ( {
71
- text : responseList ,
93
+ text : MaxTokens ( responseList , DEFAULT_MAX_WEB_SEARCH_TOKENS ) ,
72
94
} ) ;
73
95
} else {
74
96
elizaLogger . error ( "search failed or returned no data." ) ;
You can’t perform that action at this time.
0 commit comments