check-rerank-model.ts 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import type { BackendModel } from '../../header/account-setting/model-page/declarations'
  2. import { RETRIEVE_METHOD, type RetrievalConfig } from '@/types/app'
  3. export const isReRankModelSelected = ({
  4. rerankDefaultModel,
  5. isRerankDefaultModelVaild,
  6. retrievalConfig,
  7. rerankModelList,
  8. indexMethod,
  9. }: {
  10. rerankDefaultModel?: BackendModel
  11. isRerankDefaultModelVaild: boolean
  12. retrievalConfig: RetrievalConfig
  13. rerankModelList: BackendModel[]
  14. indexMethod?: string
  15. }) => {
  16. const rerankModelSelected = (() => {
  17. if (retrievalConfig.reranking_model?.reranking_model_name)
  18. return !!rerankModelList.find(({ model_name }) => model_name === retrievalConfig.reranking_model?.reranking_model_name)
  19. if (isRerankDefaultModelVaild)
  20. return !!rerankDefaultModel
  21. return false
  22. })()
  23. if (
  24. indexMethod === 'high_quality'
  25. && (retrievalConfig.reranking_enable || retrievalConfig.search_method === RETRIEVE_METHOD.hybrid)
  26. && !rerankModelSelected
  27. )
  28. return false
  29. return true
  30. }
  31. export const ensureRerankModelSelected = ({
  32. rerankDefaultModel,
  33. indexMethod,
  34. retrievalConfig,
  35. }: {
  36. rerankDefaultModel: BackendModel
  37. retrievalConfig: RetrievalConfig
  38. indexMethod?: string
  39. }) => {
  40. const rerankModel = retrievalConfig.reranking_model?.reranking_model_name ? retrievalConfig.reranking_model : undefined
  41. if (
  42. indexMethod === 'high_quality'
  43. && (retrievalConfig.reranking_enable || retrievalConfig.search_method === RETRIEVE_METHOD.hybrid)
  44. && !rerankModel
  45. ) {
  46. return {
  47. ...retrievalConfig,
  48. reranking_model: {
  49. reranking_provider_name: rerankDefaultModel.model_provider.provider_name,
  50. reranking_model_name: rerankDefaultModel.model_name,
  51. },
  52. }
  53. }
  54. return retrievalConfig
  55. }