Kevin Hu commited on
Commit
becc54e
·
1 Parent(s): 68ba7f0

Fix Voyage re-rank model. Limit file name length. (#4171)

Browse files

### What problem does this PR solve?

#4152
#4154

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

api/db/services/file_service.py CHANGED
@@ -345,6 +345,8 @@ class FileService(CommonService):
345
  MAX_FILE_NUM_PER_USER = int(os.environ.get('MAX_FILE_NUM_PER_USER', 0))
346
  if MAX_FILE_NUM_PER_USER > 0 and DocumentService.get_doc_count(kb.tenant_id) >= MAX_FILE_NUM_PER_USER:
347
  raise RuntimeError("Exceed the maximum file number of a free user!")
 
 
348
 
349
  filename = duplicate_name(
350
  DocumentService.query,
 
345
  MAX_FILE_NUM_PER_USER = int(os.environ.get('MAX_FILE_NUM_PER_USER', 0))
346
  if MAX_FILE_NUM_PER_USER > 0 and DocumentService.get_doc_count(kb.tenant_id) >= MAX_FILE_NUM_PER_USER:
347
  raise RuntimeError("Exceed the maximum file number of a free user!")
348
+ if len(file.filename) >= 128:
349
+ raise RuntimeError("Exceed the maximum length of file name!")
350
 
351
  filename = duplicate_name(
352
  DocumentService.query,
rag/llm/rerank_model.py CHANGED
@@ -422,10 +422,12 @@ class VoyageRerank(Base):
422
  self.model_name = model_name
423
 
424
  def similarity(self, query: str, texts: list):
 
 
 
425
  res = self.client.rerank(
426
  query=query, documents=texts, model=self.model_name, top_k=len(texts)
427
  )
428
- rank = np.zeros(len(texts), dtype=float)
429
  for r in res.results:
430
  rank[r.index] = r.relevance_score
431
  return rank, res.total_tokens
 
422
  self.model_name = model_name
423
 
424
  def similarity(self, query: str, texts: list):
425
+ rank = np.zeros(len(texts), dtype=float)
426
+ if not texts:
427
+ return rank, 0
428
  res = self.client.rerank(
429
  query=query, documents=texts, model=self.model_name, top_k=len(texts)
430
  )
 
431
  for r in res.results:
432
  rank[r.index] = r.relevance_score
433
  return rank, res.total_tokens