chore(server): improve semantic search (#12838)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Updated document-related tools in chat prompts, including new options
for document keyword and semantic search.

- **Refactor**
- Renamed and reorganized document search tools for improved clarity in
tool selection and results display.

- **Bug Fixes**
- Ensured tool identifiers and results are consistent across chat and
search features.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
DarkSky
2025-06-17 15:01:02 +08:00
committed by GitHub
parent a4d929b19c
commit 09c3aa0a92
6 changed files with 34 additions and 24 deletions
@@ -10,9 +10,9 @@ import {
import { ZodType } from 'zod';
import {
createDocSemanticSearchTool,
createExaCrawlTool,
createExaSearchTool,
createSemanticSearchTool,
} from '../tools';
import { PromptMessage } from './types';
@@ -380,9 +380,9 @@ export class CitationParser {
}
export interface CustomAITools extends ToolSet {
doc_semantic_search: ReturnType<typeof createDocSemanticSearchTool>;
web_search_exa: ReturnType<typeof createExaSearchTool>;
web_crawl_exa: ReturnType<typeof createExaCrawlTool>;
semantic_search: ReturnType<typeof createSemanticSearchTool>;
}
type ChunkType = TextStreamPart<CustomAITools>['type'];
@@ -429,7 +429,7 @@ export class TextStreamParser {
case 'tool-result': {
result = this.addPrefix(result);
switch (chunk.toolName) {
case 'semantic_search': {
case 'doc_semantic_search': {
if (Array.isArray(chunk.result)) {
result += `\nFound ${chunk.result.length} document${chunk.result.length !== 1 ? 's' : ''} related to “${chunk.args.query}”.\n`;
}