Skip to content

Commit ce7b24e

Browse files
committed
Refactor issue service to use asynchronous invocation for issue graph processing
1 parent 19cfe6b commit ce7b24e

1 file changed

Lines changed: 28 additions & 25 deletions

File tree

prometheus/app/services/issue_service.py

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import logging
23
import traceback
34
import uuid
@@ -92,34 +93,36 @@ async def answer_issue(
9293
file_handler.setFormatter(formatter)
9394
logger.addHandler(file_handler)
9495

96+
# Construct the working directory
97+
if dockerfile_content or image_name:
98+
container = UserDefinedContainer(
99+
repository.get_working_directory(),
100+
workdir,
101+
build_commands,
102+
test_commands,
103+
dockerfile_content,
104+
image_name,
105+
)
106+
else:
107+
container = GeneralContainer(repository.get_working_directory())
108+
# Initialize the issue graph with the necessary services and parameters
109+
issue_graph = IssueGraph(
110+
advanced_model=self.llm_service.advanced_model,
111+
base_model=self.llm_service.base_model,
112+
kg=knowledge_graph,
113+
git_repo=repository,
114+
neo4j_driver=self.neo4j_service.neo4j_driver,
115+
max_token_per_neo4j_result=self.max_token_per_neo4j_result,
116+
container=container,
117+
build_commands=build_commands,
118+
test_commands=test_commands,
119+
)
120+
95121
self.repository_service.update_repository_status(repository_id, is_working=True)
96122
try:
97-
# Construct the working directory
98-
if dockerfile_content or image_name:
99-
container = UserDefinedContainer(
100-
repository.get_working_directory(),
101-
workdir,
102-
build_commands,
103-
test_commands,
104-
dockerfile_content,
105-
image_name,
106-
)
107-
else:
108-
container = GeneralContainer(repository.get_working_directory())
109-
# Initialize the issue graph with the necessary services and parameters
110-
issue_graph = IssueGraph(
111-
advanced_model=self.llm_service.advanced_model,
112-
base_model=self.llm_service.base_model,
113-
kg=knowledge_graph,
114-
git_repo=repository,
115-
neo4j_driver=self.neo4j_service.neo4j_driver,
116-
max_token_per_neo4j_result=self.max_token_per_neo4j_result,
117-
container=container,
118-
build_commands=build_commands,
119-
test_commands=test_commands,
120-
)
121123
# Invoke the issue graph with the provided parameters
122-
output_state = issue_graph.invoke(
124+
output_state = await asyncio.to_thread(
125+
issue_graph.invoke,
123126
issue_title,
124127
issue_body,
125128
issue_comments,

0 commit comments

Comments
 (0)