Skip to content

Commit f1a2f8d

Browse files
authored
Release prep (#152)
* Adds knowledge to ac exec env * Removes linebreaks for knowledge terms
1 parent d6642fc commit f1a2f8d

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

controller/attribute/util.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from submodules.model.models import Attribute
2020
from submodules.s3 import controller as s3
2121
from util import daemon, notification
22+
from controller.knowledge_base import util as knowledge_base
2223

2324
client = docker.from_env()
2425
image = os.getenv("AC_EXEC_ENV_IMAGE")
@@ -83,6 +84,7 @@ def run_attribute_calculation_exec_env(
8384

8485
prefixed_function_name = f"{attribute_id}_fn"
8586
prefixed_payload = f"{attribute_id}_payload.json"
87+
prefixed_knowledge_base = f"{attribute_id}_knowledge"
8688
project_item = project.get(project_id)
8789
org_id = str(project_item.organization_id)
8890

@@ -91,9 +93,15 @@ def run_attribute_calculation_exec_env(
9193
project_id + "/" + prefixed_function_name,
9294
attribute_item.source_code,
9395
)
96+
s3.put_object(
97+
org_id,
98+
project_id + "/" + prefixed_knowledge_base,
99+
knowledge_base.build_knowledge_base_from_project(project_id),
100+
)
94101
command = [
95102
s3.create_access_link(org_id, project_id + "/" + doc_bin),
96103
s3.create_access_link(org_id, project_id + "/" + prefixed_function_name),
104+
s3.create_access_link(org_id, project_id + "/" + prefixed_knowledge_base),
97105
project_item.tokenizer_blank,
98106
s3.create_file_upload_link(org_id, project_id + "/" + prefixed_payload),
99107
attribute_item.data_type,
@@ -170,7 +178,6 @@ def read_container_logs_thread(
170178
attribute_id: str,
171179
docker_container: Any,
172180
) -> None:
173-
174181
ctx_token = general.get_ctx_token()
175182
# needs to be refetched since it is not thread safe
176183
attribute_item = attribute.get(project_id, attribute_id)

controller/knowledge_base/util.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,17 +24,19 @@ def build_knowledge_base_from_project(project_id: str) -> str:
2424
for knowledge_base_item in knowledge_base.get_all_by_project_id(project_id):
2525
knowledge_bases_dict[resolve_name_as_variable(knowledge_base_item.name)] = []
2626

27-
for term, knowledge_base_item in knowledge_term.get_terms_with_base_names(
27+
for term, knowledge_base_name in knowledge_term.get_terms_with_base_names(
2828
project_id
2929
):
30-
knowledge_bases_dict[resolve_name_as_variable(knowledge_base_item)].append(
31-
term
32-
) # use here knowledge base name in standard format (underscore and )
30+
# use here knowledge base name in standard format (underscore and )
31+
knowledge_bases_dict[resolve_name_as_variable(knowledge_base_name)].append(term)
3332

3433
for knowledge_base_item, values in knowledge_bases_dict.items():
3534
knowledge_base_source += f"\n{knowledge_base_item} = [\n"
3635
for value in values:
37-
value: str = value.replace("'", "\\'") # e.g. "You're too good to me"
36+
# e.g. "You're too good to me"
37+
value: str = value.replace("'", "\\'")
38+
# safety net: knowledge entries are single line, linebreaks can only come through extraction task auto generation which now should remove linebreaks
39+
value = value.replace("\n", " ").replace("\r", "")
3840
knowledge_base_source += f"\t'{value}',\n"
3941
knowledge_base_source += "]"
4042
return knowledge_base_source

controller/knowledge_term/manager.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ def create_term_in_named_knowledge_base(project_id: str, name: str, value: str)
7272
if not base:
7373
base = knowledge_base.create(project_id, name)
7474
try:
75+
# ensure linebreaks aren't part of the entry
76+
value = value.replace("\n", " ").replace("\r", "")
7577
knowledge_term.create(project_id, base.id, value, None, with_commit=True)
7678
except EntityAlreadyExistsException:
7779
pass # TODO EXCEPTION HANDLING

0 commit comments

Comments
 (0)