diff --git a/service/src/chatgpt/index.ts b/service/src/chatgpt/index.ts
index 8642176c..c85425a9 100644
--- a/service/src/chatgpt/index.ts
+++ b/service/src/chatgpt/index.ts
@@ -220,6 +220,13 @@ async function chatReplyProcess(options: RequestOptions) {
else
searchQuery = ''
+ // Enforce query length to satisfy Tavily limits.
+ // Error: Query is too long. Max query length is 400 characters.
+ const maxSearchQueryLength = 300
+ searchQuery = searchQuery.replace(/\s+/g, ' ').trim()
+ if (searchQuery.length > maxSearchQueryLength)
+ searchQuery = searchQuery.slice(0, maxSearchQueryLength).trim()
+
if (searchQuery) {
await updateChatSearchQuery(messageId, searchQuery)
diff --git a/src/locales/en-US.json b/src/locales/en-US.json
index 71e14c6c..57402f4f 100644
--- a/src/locales/en-US.json
+++ b/src/locales/en-US.json
@@ -211,7 +211,7 @@
"systemMessageWithSearchResult": "System message for conversations with search results",
"systemMessageGetSearchQuery": "System message for getting search query",
"systemMessageWithSearchResultPlaceholder": "System message template when with search results. Use {'{current_time}'} as placeholder for current time.",
- "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 example search query tags or return empty tag if not need search.",
+ "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 example search query tags or return empty tag if not need search. Require the returned query to be no more than 300 characters.",
"searchTest": "Test Search",
"accessTokenExpiredTime": "Expired Time",
"userConfig": "Users",
diff --git a/src/locales/ja-JP.json b/src/locales/ja-JP.json
index 30a93956..55f62d08 100644
--- a/src/locales/ja-JP.json
+++ b/src/locales/ja-JP.json
@@ -211,7 +211,7 @@
"systemMessageWithSearchResult": "検索結果付き会話のシステムメッセージ",
"systemMessageGetSearchQuery": "検索クエリ取得用システムメッセージ",
"systemMessageWithSearchResultPlaceholder": "検索結果付き時のシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。",
- "systemMessageGetSearchQueryPlaceholder": "検索クエリ語を生成するためのシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。LLMに example search query タグでクエリ語を返させるか、検索不要なら空の タグを返すよう要求します。",
+ "systemMessageGetSearchQueryPlaceholder": "検索クエリ語を生成するためのシステムメッセージテンプレート。{'{current_time}'} を現在時刻のプレースホルダーとして使用してください。LLMに example search query タグでクエリ語を返させるか、検索不要なら空の タグを返すよう要求します。返されるクエリは 300 文字以内にしてください。",
"searchTest": "検索テスト",
"accessTokenExpiredTime": "有効期限",
"userConfig": "ユーザー",
diff --git a/src/locales/ko-KR.json b/src/locales/ko-KR.json
index 2ed083a0..73865a5d 100644
--- a/src/locales/ko-KR.json
+++ b/src/locales/ko-KR.json
@@ -211,7 +211,7 @@
"systemMessageWithSearchResult": "검색 결과가 포함된 대화 시스템 프롬프트",
"systemMessageGetSearchQuery": "검색 쿼리어를 가져오는 시스템 프롬프트",
"systemMessageWithSearchResultPlaceholder": "검색 결과가 포함된 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용",
- "systemMessageGetSearchQueryPlaceholder": "검색 쿼리어를 생성하는 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용, LLM이 예시 검색 쿼리어 태그에서 쿼리어를 반환하도록 요구, 검색이 필요하지 않으면 빈 태그를 반환",
+ "systemMessageGetSearchQueryPlaceholder": "검색 쿼리어를 생성하는 시스템 메시지 템플릿, {'{current_time}'}를 현재 시간의 플레이스홀더로 사용, LLM이 예시 검색 쿼리어 태그에서 쿼리어를 반환하도록 요구, 검색이 필요하지 않으면 빈 태그를 반환. 반환된 쿼리어는 300자 이하여야 합니다.",
"searchTest": "검색 테스트",
"accessTokenExpiredTime": "만료된 시간",
"userConfig": "사용자",
diff --git a/src/locales/zh-CN.json b/src/locales/zh-CN.json
index f2185fb1..9394b751 100644
--- a/src/locales/zh-CN.json
+++ b/src/locales/zh-CN.json
@@ -211,7 +211,7 @@
"systemMessageWithSearchResult": "包含搜索结果时的对话系统提示词",
"systemMessageGetSearchQuery": "用于获取搜索查询词的系统提示词",
"systemMessageWithSearchResultPlaceholder": "携带搜索结果时的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符",
- "systemMessageGetSearchQueryPlaceholder": "用于生成搜索查询的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符, 要求 LLM 在 example search query 标签中返回查询词,如果不需要搜索则返回空标签",
+ "systemMessageGetSearchQueryPlaceholder": "用于生成搜索查询的系统消息模板, 使用 {'{current_time}'} 作为当前时间的占位符, 要求 LLM 在 example search query 标签中返回查询词,如果不需要搜索则返回空标签。要求返回的查询词不超过 300 个字符。",
"searchTest": "测试搜索",
"accessTokenExpiredTime": "过期时间",
"userConfig": "用户管理",
diff --git a/src/locales/zh-TW.json b/src/locales/zh-TW.json
index 3782bdd7..6ac920e5 100644
--- a/src/locales/zh-TW.json
+++ b/src/locales/zh-TW.json
@@ -211,7 +211,7 @@
"systemMessageWithSearchResult": "包含搜尋結果時的對話系統提示詞",
"systemMessageGetSearchQuery": "用於獲取搜尋查詢詞的系統提示詞",
"systemMessageWithSearchResultPlaceholder": "攜帶搜尋結果時的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符",
- "systemMessageGetSearchQueryPlaceholder": "用於生成搜尋查詢的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符, 要求 LLM 在 example search query 標籤中返回查詢詞,如果不需要搜尋則返回空標籤",
+ "systemMessageGetSearchQueryPlaceholder": "用於生成搜尋查詢的系統訊息模板, 使用 {'{current_time}'} 作為當前時間的佔位符, 要求 LLM 在 example search query 標籤中返回查詢詞,如果不需要搜尋則返回空標籤。要求返回的查詢詞不超過 300 個字元。",
"searchTest": "測試搜尋",
"accessTokenExpiredTime": "過期時間",
"userConfig": "用戶管理",