search-engine.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. import request from './request'
  2. // --- Search Engine Management Types (Optional/Legacy) ---
  3. export interface SearchEngine {
  4. id: string
  5. name: string
  6. engine_type: string
  7. base_url?: string
  8. api_key?: string
  9. description?: string
  10. status: string
  11. created_at: string
  12. updated_at: string
  13. }
  14. export interface SearchEngineParams {
  15. page?: number
  16. page_size?: number
  17. keyword?: string
  18. status?: string
  19. }
  20. export interface CreateSearchEngineData {
  21. name: string
  22. engine_type: string
  23. base_url?: string
  24. api_key?: string
  25. description?: string
  26. status?: string
  27. }
  28. export interface UpdateSearchEngineData {
  29. name?: string
  30. engine_type?: string
  31. base_url?: string
  32. api_key?: string
  33. description?: string
  34. status?: string
  35. }
  36. // --- Knowledge Base Search Types (New) ---
  37. export interface KBSearchRequest {
  38. kb_id: string
  39. query: string
  40. metadata_field?: string
  41. metadata_value?: string
  42. filters?: { field: string, value: string }[] // 新增多重过滤支持
  43. top_k?: number
  44. score_threshold?: number
  45. metric_type?: string
  46. page?: number
  47. page_size?: number
  48. }
  49. export interface KBSearchResultItem {
  50. id: string
  51. kb_name: string
  52. doc_name: string
  53. content: string
  54. meta_info: string
  55. document_id?: string
  56. metadata?: Record<string, any>
  57. score: number
  58. }
  59. export interface KBSearchResponse {
  60. results: KBSearchResultItem[]
  61. total: number
  62. }
  63. // --- API Methods ---
  64. // Knowledge Base Semantic Search
  65. export const searchKnowledgeBase = (data: KBSearchRequest) => {
  66. return request({
  67. url: '/api/v1/sample/search-engine/search',
  68. method: 'post',
  69. data
  70. })
  71. }
  72. // ... Existing CRUD Methods ...
  73. export const getSearchEngines = (params: SearchEngineParams) => {
  74. return request({
  75. url: '/api/v1/sample/search-engine',
  76. method: 'get',
  77. params
  78. })
  79. }
  80. export const createSearchEngine = (data: CreateSearchEngineData) => {
  81. return request({
  82. url: '/api/v1/sample/search-engine',
  83. method: 'post',
  84. data
  85. })
  86. }
  87. export const updateSearchEngine = (id: string, data: UpdateSearchEngineData) => {
  88. return request({
  89. url: '/api/v1/sample/search-engine/' + id,
  90. method: 'post',
  91. data
  92. })
  93. }
  94. export const updateSearchEngineStatus = (id: string, status: string) => {
  95. return request({
  96. url: '/api/v1/sample/search-engine/' + id + '/status',
  97. method: 'post',
  98. params: { status }
  99. })
  100. }
  101. export const deleteSearchEngine = (id: string) => {
  102. return request({
  103. url: '/api/v1/sample/search-engine/' + id + '/delete',
  104. method: 'post'
  105. })
  106. }