File tree 3 files changed +31
-2
lines changed
3 files changed +31
-2
lines changed Original file line number Diff line number Diff line change @@ -261,6 +261,9 @@ LARGE_AKASH_CHAT_API_MODEL= # Default: Meta-Llama-3-1-405B-Instruct-FP8
261
261
FAL_API_KEY =
262
262
FAL_AI_LORA_PATH =
263
263
264
+ # Web search API Configuration
265
+ TAVILY_API_KEY =
266
+
264
267
# WhatsApp Cloud API Configuration
265
268
WHATSAPP_ACCESS_TOKEN = # Permanent access token from Facebook Developer Console
266
269
WHATSAPP_PHONE_NUMBER_ID = # Phone number ID from WhatsApp Business API
Original file line number Diff line number Diff line change @@ -1215,6 +1215,10 @@ export const generateWebSearch = async (
1215
1215
api_key : apiKey ,
1216
1216
query,
1217
1217
include_answer : true ,
1218
+ max_results : 3 , // 5 (default)
1219
+ topic : "general" , // "general"(default) "news"
1220
+ search_depth : "basic" , // "basic"(default) "advanced"
1221
+ include_images : false , // false (default) true
1218
1222
} ) ,
1219
1223
} ) ;
1220
1224
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