Skip to content

Commit 1c1b9a1

Browse files
authored
fix: cap tavily search query length (#685)
Signed-off-by: Bob Du <i@bobdu.cc>
1 parent a180730 commit 1c1b9a1

6 files changed

Lines changed: 12 additions & 5 deletions

File tree

service/src/chatgpt/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -220,6 +220,13 @@ async function chatReplyProcess(options: RequestOptions) {
220220
else
221221
searchQuery = ''
222222

223+
// Enforce query length to satisfy Tavily limits.
224+
// Error: Query is too long. Max query length is 400 characters.
225+
const maxSearchQueryLength = 300
226+
searchQuery = searchQuery.replace(/\s+/g, ' ').trim()
227+
if (searchQuery.length > maxSearchQueryLength)
228+
searchQuery = searchQuery.slice(0, maxSearchQueryLength).trim()
229+
223230
if (searchQuery) {
224231
await updateChatSearchQuery(messageId, searchQuery)
225232

src/locales/en-US.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
"systemMessageWithSearchResult": "System message for conversations with search results",
212212
"systemMessageGetSearchQuery": "System message for getting search query",
213213
"systemMessageWithSearchResultPlaceholder": "System message template when with search results. Use {'{current_time}'} as placeholder for current time.",
214-
"systemMessageGetSearchQueryPlaceholder": "System message template for generating search query word. Use {'{current_time}'} as placeholder for current time. Require LLM to return the query word in <search_query>example search query</search_query> tags or return empty <search_query></search_query> tag if not need search.",
214+
"systemMessageGetSearchQueryPlaceholder": "System message template for generating search query word. Use {'{current_time}'} as placeholder for current time. Require the LLM to return a query in <search_query>example search query</search_query> tags or return empty <search_query></search_query> tag if not need search. Require the returned query to be no more than 300 characters.",
215215
"searchTest": "Test Search",
216216
"accessTokenExpiredTime": "Expired Time",
217217
"userConfig": "Users",

src/locales/ja-JP.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
"systemMessageWithSearchResult": "検索結果付き会話のシステムメッセージ",
212212
"systemMessageGetSearchQuery": "検索クエリ取得用システムメッセージ",
213213
"systemMessageWithSearchResultPlaceholder": "検索結果付き時のシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。",
214-
"systemMessageGetSearchQueryPlaceholder": "検索クエリ語を生成するためのシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。LLMに <search_query>example search query</search_query> タグでクエリ語を返させるか、検索不要なら空の <search_query></search_query> タグを返すよう要求します。",
214+
"systemMessageGetSearchQueryPlaceholder": "検索クエリ語を生成するためのシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。LLMに <search_query>example search query</search_query> タグでクエリ語を返させるか、検索不要なら空の <search_query></search_query> タグを返すよう要求します。返されるクエリは 300 文字以内にしてください。",
215215
"searchTest": "検索テスト",
216216
"accessTokenExpiredTime": "有効期限",
217217
"userConfig": "ユーザー",

src/locales/ko-KR.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
"systemMessageWithSearchResult": "검색 결과가 포함된 대화 시스템 프롬프트",
212212
"systemMessageGetSearchQuery": "검색 쿼리어를 가져오는 시스템 프롬프트",
213213
"systemMessageWithSearchResultPlaceholder": "검색 결과가 포함된 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용",
214-
"systemMessageGetSearchQueryPlaceholder": "검색 쿼리어를 생성하는 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용, LLM이 <search_query>예시 검색 쿼리어</search_query> 태그에서 쿼리어를 반환하도록 요구, 검색이 필요하지 않으면 빈 <search_query></search_query> 태그를 반환",
214+
"systemMessageGetSearchQueryPlaceholder": "검색 쿼리어를 생성하는 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용, LLM이 <search_query>예시 검색 쿼리어</search_query> 태그에서 쿼리어를 반환하도록 요구, 검색이 필요하지 않으면 빈 <search_query></search_query> 태그를 반환. 반환된 쿼리어는 300자 이하여야 합니다.",
215215
"searchTest": "검색 테스트",
216216
"accessTokenExpiredTime": "만료된 시간",
217217
"userConfig": "사용자",

src/locales/zh-CN.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
"systemMessageWithSearchResult": "包含搜索结果时的对话系统提示词",
212212
"systemMessageGetSearchQuery": "用于获取搜索查询词的系统提示词",
213213
"systemMessageWithSearchResultPlaceholder": "携带搜索结果时的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符",
214-
"systemMessageGetSearchQueryPlaceholder": "用于生成搜索查询的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符, 要求 LLM 在 <search_query>example search query</search_query> 标签中返回查询词,如果不需要搜索则返回空<search_query></search_query>标签",
214+
"systemMessageGetSearchQueryPlaceholder": "用于生成搜索查询的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符, 要求 LLM 在 <search_query>example search query</search_query> 标签中返回查询词,如果不需要搜索则返回空<search_query></search_query>标签。要求返回的查询词不超过 300 个字符。",
215215
"searchTest": "测试搜索",
216216
"accessTokenExpiredTime": "过期时间",
217217
"userConfig": "用户管理",

src/locales/zh-TW.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
"systemMessageWithSearchResult": "包含搜尋結果時的對話系統提示詞",
212212
"systemMessageGetSearchQuery": "用於獲取搜尋查詢詞的系統提示詞",
213213
"systemMessageWithSearchResultPlaceholder": "攜帶搜尋結果時的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符",
214-
"systemMessageGetSearchQueryPlaceholder": "用於生成搜尋查詢的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符, 要求 LLM 在 <search_query>example search query</search_query> 標籤中返回查詢詞,如果不需要搜尋則返回空<search_query></search_query>標籤",
214+
"systemMessageGetSearchQueryPlaceholder": "用於生成搜尋查詢的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符, 要求 LLM 在 <search_query>example search query</search_query> 標籤中返回查詢詞,如果不需要搜尋則返回空<search_query></search_query>標籤。要求返回的查詢詞不超過 300 個字元。",
215215
"searchTest": "測試搜尋",
216216
"accessTokenExpiredTime": "過期時間",
217217
"userConfig": "用戶管理",

0 commit comments

Comments
 (0)