Skip to content

Commit b431d01

Browse files
authored
backend: more compass file fixes (#728)
* fix * remove print
1 parent 63bfdaf commit b431d01

File tree

4 files changed

+44
-30
lines changed

4 files changed

+44
-30
lines changed

src/backend/routers/agent.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ async def create_agent(
138138
}
139139
)
140140
if file_ids:
141-
await consolidate_agent_files_in_compass(file_ids, created_agent.id)
141+
await consolidate_agent_files_in_compass(file_ids, created_agent.id, ctx)
142142

143143
if deployment_db and model_db:
144144
deployment_config = (

src/backend/schemas/file.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import datetime
2+
from typing import Optional
23

34
from pydantic import BaseModel, Field
45

@@ -9,8 +10,8 @@ class File(BaseModel):
910
updated_at: datetime.datetime
1011

1112
user_id: str
12-
conversation_id: str
13-
file_content: str
13+
conversation_id: Optional[str] = ""
14+
file_content: Optional[str] = ""
1415
file_name: str
1516
file_size: int = Field(default=0, ge=0)
1617

src/backend/services/file.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,18 @@ def get_compass():
6868

6969
if compass is None:
7070
try:
71-
compass = Compass()
71+
compass = Compass(
72+
compass_api_url=Settings().compass.api_url,
73+
compass_parser_url=Settings().compass.parser_url,
74+
compass_username=Settings().compass.username,
75+
compass_password=Settings().compass.password,
76+
)
7277
except Exception as e:
7378
logger.error(
7479
event=f"[Compass File Service] Error initializing Compass: {e}"
7580
)
7681
raise e
82+
7783
return compass
7884

7985

@@ -157,7 +163,7 @@ async def create_agent_files(
157163
Since agents are created after the files are upload we index files into dummy indices first
158164
We later consolidate them in consolidate_agent_files_in_compass() to a singular index when an agent is created.
159165
"""
160-
uploaded_files = await insert_files_in_compass(files, ctx, user_id)
166+
uploaded_files = await insert_files_in_compass(files, user_id, ctx)
161167
else:
162168
uploaded_files = await insert_files_in_db(session, files, user_id)
163169

@@ -459,12 +465,21 @@ async def consolidate_agent_files_in_compass(
459465
compass = get_compass()
460466

461467
try:
462-
compass.invoke(
468+
logger.info(
469+
event="[Compass File Service] Creating index for agent files",
470+
agent_id=agent_id
471+
)
472+
response = compass.invoke(
463473
action=Compass.ValidActions.CREATE_INDEX,
464474
parameters={
465475
"index": agent_id,
466476
},
467477
)
478+
logger.info(
479+
event="[Compass File Service] Finished creating index for agent files",
480+
agent_id=agent_id,
481+
response=response
482+
)
468483
except Exception as e:
469484
logger.Error(
470485
event=f"[Compass File Service] Error creating index for agent files: {agent_id}, error: {e}"
@@ -480,13 +495,13 @@ async def consolidate_agent_files_in_compass(
480495
action=Compass.ValidActions.GET_DOCUMENT,
481496
parameters={"index": file_id, "file_id": file_id},
482497
).result["doc"]["content"]
483-
compass().invoke(
498+
compass.invoke(
484499
action=Compass.ValidActions.CREATE,
485500
parameters={
486501
"index": agent_id,
487502
"file_id": file_id,
488503
"file_bytes": fetched_doc["text"],
489-
"filename": fetched_doc["file_name"],
504+
"file_extension": get_file_extension(fetched_doc["file_name"]),
490505
"custom_context": {
491506
"file_id": file_id,
492507
"file_name": fetched_doc["file_name"],
@@ -506,7 +521,7 @@ async def consolidate_agent_files_in_compass(
506521
)
507522
# Remove the temporary file index entry
508523
compass.invoke(
509-
action=Compass.ValidActions.DELETE_INDEX, parameters={"index": agent_id}
524+
action=Compass.ValidActions.DELETE_INDEX, parameters={"index": file_id}
510525
)
511526
except Exception as e:
512527
logger.error(
@@ -568,7 +583,7 @@ async def insert_files_in_compass(
568583
"index": new_file_id if index is None else index,
569584
"file_id": new_file_id,
570585
"file_bytes": file_bytes,
571-
"filename": filename,
586+
"file_extension": get_file_extension(filename),
572587
"custom_context": {
573588
"file_id": new_file_id,
574589
"file_name": filename,

src/backend/tools/files.py

Lines changed: 18 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -33,38 +33,36 @@ def compass_file_search(
3333
for file_id in file_ids
3434
]
3535

36+
compass = get_compass()
37+
3638
# Search conversation ID index
37-
hits = (
38-
get_compass()
39-
.invoke(
39+
search_results = compass.invoke(
4040
action=Compass.ValidActions.SEARCH,
4141
parameters={
4242
"index": conversation_id,
4343
"query": query,
4444
"top_k": search_limit,
4545
"filters": search_filters,
46-
},
47-
)
48-
.result["hits"]
46+
},
4947
)
50-
results.extend(hits)
48+
49+
if search_results.result:
50+
results.extend(search_results.result["hits"])
5151

5252
# Search agent ID index
5353
if agent_id:
54-
hits = (
55-
get_compass()
56-
.invoke(
57-
action=Compass.ValidActions.SEARCH,
58-
parameters={
59-
"index": agent_id,
60-
"query": query,
61-
"top_k": search_limit,
62-
"filters": search_filters,
63-
},
64-
)
65-
.result["hits"]
54+
search_results = compass.invoke(
55+
action=Compass.ValidActions.SEARCH,
56+
parameters={
57+
"index": agent_id,
58+
"query": query,
59+
"top_k": search_limit,
60+
"filters": search_filters,
61+
},
6662
)
67-
results.extend(hits)
63+
64+
if search_results.result:
65+
results.extend(search_results.result["hits"])
6866

6967
chunks = sorted(
7068
[

0 commit comments

Comments
 (0)