Skip to content

FastAPI Integration #196

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 354 commits into from
Apr 15, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
354 commits
Select commit Hold shift + click to select a range
4252e41
Merge branch 'fastapi' of https://github.com/code-kern-ai/refinery-ga…
LennartSchmidtKern Mar 26, 2024
ccac54f
adds createOutlierSlice
anmarhindi Mar 26, 2024
4e4fb15
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Mar 26, 2024
daa6c2f
adds recordsByStaticSlice
anmarhindi Mar 26, 2024
b981a8c
comment fix
LennartSchmidtKern Mar 26, 2024
705136d
record export
LennartSchmidtKern Mar 26, 2024
6f1733e
Merge branch 'fastapi' of https://github.com/code-kern-ai/refinery-ga…
LennartSchmidtKern Mar 26, 2024
bf8441a
getRecordExportFromData
LennartSchmidtKern Mar 26, 2024
3093f4b
adds staticDataSlicesCurrentCount
anmarhindi Mar 27, 2024
ed52700
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Mar 27, 2024
3dd6207
removes unused import
anmarhindi Mar 27, 2024
4cb00c3
remove unused imports
anmarhindi Mar 27, 2024
bf5db19
adds availableLinks
anmarhindi Mar 27, 2024
3cd3f4f
adds createDataSlice
anmarhindi Mar 28, 2024
86886ba
adds lastRecordExportCredentials
anmarhindi Mar 28, 2024
0655926
fix gates integration data for updating projects
JWittmeyer Mar 28, 2024
957131e
fix status ref
anmarhindi Mar 28, 2024
6a47a40
get_gates_integration_data patch
anmarhindi Mar 28, 2024
b94bb09
adds prepareRecordExport + changes to lastRecordExportCredentials
anmarhindi Apr 2, 2024
6e59d28
adds requestHuddleData
anmarhindi Apr 2, 2024
ad7b93b
Create label mutation
lumburovskalina Apr 2, 2024
eff54e7
Record label association by ids
lumburovskalina Apr 2, 2024
08f4f0b
Delete record by recordId
lumburovskalina Apr 2, 2024
3142326
adds getTokenizedRecord
anmarhindi Apr 2, 2024
a19dc96
resolve conflict
anmarhindi Apr 2, 2024
d5206c7
adds Request json call inside try body
anmarhindi Apr 2, 2024
8efe543
Search records by similarity search
lumburovskalina Apr 2, 2024
84d615f
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 2, 2024
8a1f289
Merge
lumburovskalina Apr 2, 2024
97befa2
changes huddle id source
anmarhindi Apr 2, 2024
5f1aaa6
Get labeling function on 10 records
lumburovskalina Apr 2, 2024
993afe0
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 2, 2024
8f8bc18
changes
anmarhindi Apr 2, 2024
42fe794
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 2, 2024
efb9625
Zero shot text query
lumburovskalina Apr 2, 2024
2bf8b92
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 2, 2024
306cfca
Merge
lumburovskalina Apr 2, 2024
132212c
Zero shot on 10 records
lumburovskalina Apr 2, 2024
91edb82
Export lookup list query
lumburovskalina Apr 2, 2024
9040df8
adds recordByRecordId
anmarhindi Apr 2, 2024
6fe3cd8
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 2, 2024
4e94532
patch url structure
anmarhindi Apr 2, 2024
a89f1be
Model callbacks query
lumburovskalina Apr 2, 2024
0475b02
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 2, 2024
31cb6e0
Merge
lumburovskalina Apr 2, 2024
50cdf9e
Can create local org query
lumburovskalina Apr 2, 2024
bd4d053
accessLink
anmarhindi Apr 3, 2024
73dfcb6
resolve
anmarhindi Apr 3, 2024
4c91be0
Personal tokens query
lumburovskalina Apr 3, 2024
7f1bc45
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 3, 2024
108c5ec
isRatsTokenizationStillRunning
LennartSchmidtKern Apr 3, 2024
72d306f
Merge branch 'fastapi' of https://github.com/code-kern-ai/refinery-ga…
LennartSchmidtKern Apr 3, 2024
454d507
lastProjectExportCredentials
LennartSchmidtKern Apr 3, 2024
d9e189f
added linkLocked + simple pydantic model to validate body
anmarhindi Apr 3, 2024
6552b32
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 3, 2024
3d3b388
clean line
anmarhindi Apr 3, 2024
93a2d49
Project size query
lumburovskalina Apr 3, 2024
efc7f52
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 3, 2024
e7273ad
Create new labels mutation
lumburovskalina Apr 3, 2024
1f8d03b
add pydantic models
anmarhindi Apr 3, 2024
2c79d33
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 3, 2024
1cf5f64
remove import
anmarhindi Apr 3, 2024
2f0c265
calculateUserAttributeSampleRecords
LennartSchmidtKern Apr 3, 2024
15c97ce
Merge branch 'fastapi' of https://github.com/code-kern-ai/refinery-ga…
LennartSchmidtKern Apr 3, 2024
d2c6fc2
adds notifications
anmarhindi Apr 3, 2024
ace84f3
uploadCredentialsAndId mutation
lumburovskalina Apr 3, 2024
997db7b
Merge
lumburovskalina Apr 3, 2024
dc8c0b9
RecordIdeBody
LennartSchmidtKern Apr 3, 2024
50955f7
deleteDataSliceById
LennartSchmidtKern Apr 3, 2024
1198d67
editRecords
LennartSchmidtKern Apr 3, 2024
467270c
toggleInformationSource
LennartSchmidtKern Apr 3, 2024
e6715d9
adds updateDataSlice
anmarhindi Apr 3, 2024
b2c6e31
resolve
anmarhindi Apr 3, 2024
fedfef3
uploadTaskById
lumburovskalina Apr 3, 2024
190d513
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 3, 2024
fbdb5e2
edit linkLocked, remove unused example model
anmarhindi Apr 3, 2024
27dcf9e
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 3, 2024
0f5bb7b
deleteInformationSource
lumburovskalina Apr 3, 2024
b9d9500
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 3, 2024
6fbc4f9
setAllInformationSourceSelected,
LennartSchmidtKern Apr 4, 2024
a2d6b0c
Merge branch 'fastapi' of https://github.com/code-kern-ai/refinery-ga…
LennartSchmidtKern Apr 4, 2024
e6f4a04
createHeuristic
lumburovskalina Apr 4, 2024
bb1988a
Merge
lumburovskalina Apr 4, 2024
84c5536
createZeroShotInformationSource
lumburovskalina Apr 4, 2024
5e9b8d6
updateInformationSource
lumburovskalina Apr 4, 2024
b3e8d46
adds generateAccessLink + fixes
anmarhindi Apr 4, 2024
0520b57
remove swp file
anmarhindi Apr 4, 2024
253c3fc
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 4, 2024
0dfe3c0
runHeuristicThenTriggerWeakSupervision
lumburovskalina Apr 4, 2024
a6c8db3
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 4, 2024
152d96b
cancelZeroShotRun
lumburovskalina Apr 4, 2024
e4fd3f9
adds removeAccessLink
anmarhindi Apr 4, 2024
d4d13c2
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 4, 2024
2707e43
adds lockAccessLink
anmarhindi Apr 4, 2024
c012a37
remove unused
anmarhindi Apr 4, 2024
5d902a8
addClassificationLabelsToRecord
lumburovskalina Apr 4, 2024
e23a9d5
Merge
lumburovskalina Apr 4, 2024
aed6aa3
addExtractionLabelToRecord
lumburovskalina Apr 4, 2024
71d2027
setGoldStarAnnotationForTask and removeGoldStarAnnotationForTask
lumburovskalina Apr 4, 2024
b3afdbc
createOrganization and addUserToOrganization
lumburovskalina Apr 4, 2024
8443715
changeOrganization
lumburovskalina Apr 4, 2024
2dfc8b2
updateConfig
lumburovskalina Apr 4, 2024
f81e221
Enforces project access checks on endpoints that use project_id, prev…
anmarhindi Apr 4, 2024
957b003
merge
anmarhindi Apr 4, 2024
7b36d97
createPersonalAccessToken and deletePersonalAccessToken
lumburovskalina Apr 5, 2024
7ff5714
Merge
lumburovskalina Apr 5, 2024
8e62022
createUserAttribute
lumburovskalina Apr 5, 2024
f235baa
remove print statement
anmarhindi Apr 5, 2024
cd10b89
adds createKnowledgeBase
anmarhindi Apr 5, 2024
0c8268a
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 5, 2024
60a02ce
remove duplicate path from get_export_lookup_list
anmarhindi Apr 5, 2024
bb27838
removed and tested duplicate path for get_terms_by_lookup_list_id
anmarhindi Apr 5, 2024
4ff75ac
tested/removed/updated duplicate path for get_lookup_lists_by_lookup_…
anmarhindi Apr 5, 2024
59828c4
tested/removed/updated duplicate path for get_lookup_lists_by_lookup_…
anmarhindi Apr 5, 2024
17f32ad
tested/removed/updated duplicate path for get-lookup-lists-by-project-id
anmarhindi Apr 5, 2024
78d8647
updateAttribute
lumburovskalina Apr 5, 2024
0735e02
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 5, 2024
1da7fe8
adds updateKnowledgeBase
anmarhindi Apr 5, 2024
0ca4ca6
resolve conflict
anmarhindi Apr 5, 2024
7600e17
updateProjectNameAndDescription
lumburovskalina Apr 5, 2024
dcff11c
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 5, 2024
061a487
adds deleteKnowledgeBase
anmarhindi Apr 5, 2024
5df38ad
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 5, 2024
cea86bf
updateProjectForGates
lumburovskalina Apr 5, 2024
785b2f8
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 5, 2024
73cefb2
Integrate project access checks into router dependencies for attribut…
anmarhindi Apr 5, 2024
8081c94
Integrate project access checks into router dependencies for data_bro…
anmarhindi Apr 5, 2024
3274b2c
Integrate project access checks into router dependencies for heuristi…
anmarhindi Apr 5, 2024
ca47574
Integrate project access checks into router dependencies for labeling…
anmarhindi Apr 5, 2024
bf9e9e2
Integrate project access checks into router dependencies for project,…
anmarhindi Apr 5, 2024
27dba26
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 5, 2024
be6ef70
deleteFromTaskQueue and deleteEmbedding
lumburovskalina Apr 5, 2024
c6155cd
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 5, 2024
59107a5
createEmbedding
lumburovskalina Apr 5, 2024
54e3a07
adds addTermToKnowledgeBase
anmarhindi Apr 8, 2024
6a53372
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 8, 2024
c2ee16f
adds deleteTerm
anmarhindi Apr 8, 2024
bcacf94
adds blacklistTerm
anmarhindi Apr 8, 2024
903a403
adds pasteKnowledgeTerms
anmarhindi Apr 8, 2024
24e1173
adds updateTerm
anmarhindi Apr 8, 2024
f9f69d8
adds updateEmbeddingPayload
anmarhindi Apr 8, 2024
5b83d71
Update project access check for data_slices
anmarhindi Apr 8, 2024
3a21766
Update project access check for embedding
anmarhindi Apr 8, 2024
09078dd
typo
anmarhindi Apr 8, 2024
9274ad0
Update project access check for lookup_lists
anmarhindi Apr 8, 2024
a3afc01
Update project access check for project_setting
anmarhindi Apr 8, 2024
d2135da
Update project access check for project
anmarhindi Apr 8, 2024
c0d9d8a
remove unused import
anmarhindi Apr 8, 2024
b8b49f7
adds updateLabelingTask
anmarhindi Apr 8, 2024
e60e16c
update notifications
anmarhindi Apr 8, 2024
476d1ea
updates project access for routes
anmarhindi Apr 8, 2024
4c6caa4
adds deleteLabelingTask
anmarhindi Apr 8, 2024
bcec782
adds createLabelingTask
anmarhindi Apr 8, 2024
21b3c64
adds deleteLabel
anmarhindi Apr 8, 2024
82e91a1
changes to labeling
anmarhindi Apr 8, 2024
9dec843
adds updateLabelColor
anmarhindi Apr 8, 2024
50a04e7
adds updateLabelHotkey
anmarhindi Apr 9, 2024
6c480ff
adds handleLabelRenameWarnings
anmarhindi Apr 9, 2024
4d8f302
adds updateLabelName
anmarhindi Apr 9, 2024
de9a8d2
adds createComment
anmarhindi Apr 9, 2024
7786b01
adds deleteComment
anmarhindi Apr 9, 2024
d099573
adds updateComment
anmarhindi Apr 9, 2024
1cffd5e
patch all-comments
anmarhindi Apr 9, 2024
625f139
minor clean
anmarhindi Apr 9, 2024
3d8cf4c
adds deleteProject
anmarhindi Apr 9, 2024
564386b
adds createProject
anmarhindi Apr 9, 2024
d9fe828
adds updateProjectTokenizer, patch getTokenizedRecord
anmarhindi Apr 9, 2024
def927d
renames get-data-slices
anmarhindi Apr 9, 2024
31d4225
fixes weak-supervision-run
anmarhindi Apr 9, 2024
0878beb
adds updateProjectStatus
anmarhindi Apr 9, 2024
0d26137
adds createSampleProject
anmarhindi Apr 10, 2024
cfbb0f5
adds calculateUserAttributeAllRecords
anmarhindi Apr 10, 2024
2cf1b95
adds createTaskAndLabels
anmarhindi Apr 10, 2024
324e2a2
adds modelProviderDeleteModel
anmarhindi Apr 10, 2024
da18db4
adds modelProviderDownloadModel
anmarhindi Apr 10, 2024
0a2cf62
adds deleteUserAttribute
anmarhindi Apr 10, 2024
aae7fef
adds prepareProjectExport
anmarhindi Apr 10, 2024
51dde12
Fixes heuristic request with most recent payload
JWittmeyer Apr 11, 2024
dd6ae0b
Fixes embedding filter attributes wrapping & unique values
JWittmeyer Apr 11, 2024
67e63f0
merge with dev
JWittmeyer Apr 11, 2024
16f4f48
Adds gql wrapper for record ide request
JWittmeyer Apr 11, 2024
8611bf7
Rename endpoint to better represent the task
JWittmeyer Apr 11, 2024
7cdd529
allows optional values for lookuplist update
JWittmeyer Apr 11, 2024
213ec71
Merge remote-tracking branch 'origin/dev' into fastapi
JWittmeyer Apr 11, 2024
250c21c
Submodule change
JWittmeyer Apr 11, 2024
ee0af2b
Fixes label deletion
JWittmeyer Apr 11, 2024
20ecfa5
Removes onQdrant from whitelist
JWittmeyer Apr 11, 2024
8ff4346
Fixes data slice update
JWittmeyer Apr 11, 2024
96cd90d
Fixes slice collection
JWittmeyer Apr 11, 2024
62480e7
Removes unused whitelists
JWittmeyer Apr 11, 2024
99c58c6
Fixes missing dependencies
JWittmeyer Apr 11, 2024
fed7e62
adds recordLabelAssociations
anmarhindi Apr 11, 2024
f53ff7e
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 11, 2024
3108e71
remove print
anmarhindi Apr 11, 2024
0d86b96
Labeling tasks requests into a separate file
lumburovskalina Apr 11, 2024
ec43c64
PR comments
lumburovskalina Apr 11, 2024
2755288
PR comments
lumburovskalina Apr 11, 2024
e538610
fixes similarity without filter issues
JWittmeyer Apr 12, 2024
445aade
Fixes data slice request structure
JWittmeyer Apr 12, 2024
eb95d97
Unasync prep project endpoint
JWittmeyer Apr 12, 2024
973dd14
Small fix for updating data slices
lumburovskalina Apr 12, 2024
fc7814e
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 12, 2024
70165d9
patch embeddings-by-project
anmarhindi Apr 12, 2024
07b81b5
resolve
anmarhindi Apr 12, 2024
98fff54
additional patch
anmarhindi Apr 12, 2024
d5e1475
clean
anmarhindi Apr 12, 2024
383596b
removes async
anmarhindi Apr 12, 2024
a64bfb6
upgrades get_all_comments
anmarhindi Apr 12, 2024
08a6454
remove unused imports
anmarhindi Apr 12, 2024
86acd3f
upgrades get_record_comments, additions to get_embeddings
anmarhindi Apr 12, 2024
4a0ca8b
remove unused imports
anmarhindi Apr 12, 2024
eaf0de3
updates zero-shot-10-records
anmarhindi Apr 12, 2024
7a9c2f0
updates zero-shot-text
anmarhindi Apr 12, 2024
3b56da7
removes unused imports
anmarhindi Apr 12, 2024
18bc2c2
updates create-labels
anmarhindi Apr 12, 2024
dc8a76e
removes duplicate import
anmarhindi Apr 12, 2024
c29a4e3
upgrades create_label
anmarhindi Apr 12, 2024
e70a192
remove unused import
anmarhindi Apr 12, 2024
e7a0500
updates delete_data_slice_by_id
anmarhindi Apr 12, 2024
ec8bb55
upgrades update_data_slice
anmarhindi Apr 12, 2024
b39605d
upgrades available-links
anmarhindi Apr 12, 2024
6d72b1a
upgrades huddle-data
anmarhindi Apr 12, 2024
0403fff
edits available-links
anmarhindi Apr 12, 2024
ebbbd82
upgrades delete_record_label_association_by_ids
anmarhindi Apr 12, 2024
a7b18a4
removes unused import
anmarhindi Apr 12, 2024
7f420f0
upgrades get_tokenized_record
anmarhindi Apr 12, 2024
eec2c52
upgrades create_data_slice
anmarhindi Apr 12, 2024
1248c19
remove unused import
anmarhindi Apr 12, 2024
8eaca08
upgrades get_search_records_by_similarity
anmarhindi Apr 12, 2024
27c6c00
huddle edits
anmarhindi Apr 12, 2024
f49bf46
upgrade search-records-extended
anmarhindi Apr 15, 2024
cd5651c
upgrades records-by-static-slice
anmarhindi Apr 15, 2024
88c2522
Fixed labeling function on 10 records for extraction
lumburovskalina Apr 15, 2024
e33681a
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 15, 2024
bc15df0
remove unused import
anmarhindi Apr 15, 2024
5422893
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 15, 2024
4c4719a
edit
anmarhindi Apr 15, 2024
6267093
Hotfix session deletion
JWittmeyer Apr 15, 2024
d4652e7
Fixed issue for only different results
lumburovskalina Apr 15, 2024
1b948f5
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 15, 2024
c111350
patch record-label-associations
anmarhindi Apr 15, 2024
b53502e
Merge remote-tracking branch 'origin/fastapi' into fastapi
anmarhindi Apr 15, 2024
a64afb4
update model ref
anmarhindi Apr 15, 2024
d4f194d
SUbmodules merged
lumburovskalina Apr 15, 2024
211fe93
Revert "SUbmodules merged"
lumburovskalina Apr 15, 2024
99abeff
Merge branch 'fastapi' of github.com:code-kern-ai/refinery-gateway in…
lumburovskalina Apr 15, 2024
ac7944c
Submodules merge
lumburovskalina Apr 15, 2024
87d0a33
Merge
lumburovskalina Apr 15, 2024
a445a74
Merge branch 'dev' into fastapi
anmarhindi Apr 15, 2024
f11ed5e
Submodules merge
lumburovskalina Apr 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 88 additions & 2 deletions app.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import logging

from fastapi import FastAPI
from api.healthcheck import Healthcheck
from api.misc import IsDemoRest, IsManagedRest
import graphene
Expand All @@ -15,21 +17,104 @@
CognitionPrepareProject,
CognitionParseMarkdownFile,
)
from fast_api.routes.organization import router as org_router
from fast_api.routes.project import router as project_router
from fast_api.routes.project_setting import router as project_setting_router
from fast_api.routes.misc import router as misc_router
from fast_api.routes.comment import router as comment_router
from fast_api.routes.zero_shot import router as zero_shot_router
from fast_api.routes.attribute import router as attribute_router
from fast_api.routes.embedding import router as embedding_router
from fast_api.routes.notification import router as notification_router
from fast_api.routes.data_slices import router as data_slice_router
from fast_api.routes.lookup_lists import router as lookup_lists_router
from fast_api.routes.heuristic import router as heuristic_router
from fast_api.routes.data_browser import router as data_browser_router
from fast_api.routes.labeling import router as labeling_router
from fast_api.routes.record_ide import router as record_ide_router
from fast_api.routes.record import router as record_router
from fast_api.routes.weak_supervision import router as weak_supervision_router
from fast_api.routes.labeling_tasks import router as labeling_tasks_router
from middleware.database_session import DatabaseSessionHandler
from starlette.applications import Starlette
from starlette.graphql import GraphQLApp
from starlette.middleware import Middleware
from starlette.routing import Route
from starlette.routing import Route, Mount

from graphql_api import schema
from controller.task_queue.task_queue import init_task_queues
from controller.project.manager import check_in_deletion_projects
from route_prefix import (
PREFIX_ORGANIZATION,
PREFIX_PROJECT,
PREFIX_PROJECT_SETTING,
PREFIX_MISC,
PREFIX_COMMENT,
PREFIX_ZERO_SHOT,
PREFIX_ATTRIBUTE,
PREFIX_EMBEDDING,
PREFIX_NOTIFICATION,
PREFIX_DATA_SLICE,
PREFIX_LOOKUP_LISTS,
PREFIX_HEURISTIC,
PREFIX_DATA_BROWSER,
PREFIX_LABELING,
PREFIX_RECORD_IDE,
PREFIX_RECORD,
PREFIX_WEAK_SUPERVISION,
PREFIX_LABELING_TASKS,
)
from util import security, clean_up


logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)

fastapi_app = FastAPI()

fastapi_app.include_router(
org_router, prefix=PREFIX_ORGANIZATION, tags=["organization"]
)
fastapi_app.include_router(project_router, prefix=PREFIX_PROJECT, tags=["project"])
fastapi_app.include_router(
project_setting_router, prefix=PREFIX_PROJECT_SETTING, tags=["project-setting"]
)
fastapi_app.include_router(misc_router, prefix=PREFIX_MISC, tags=["misc"])
fastapi_app.include_router(comment_router, prefix=PREFIX_COMMENT, tags=["comment"])
fastapi_app.include_router(
zero_shot_router, prefix=PREFIX_ZERO_SHOT, tags=["zero-shot"]
)
fastapi_app.include_router(
attribute_router, prefix=PREFIX_ATTRIBUTE, tags=["attribute"]
)
fastapi_app.include_router(
embedding_router, prefix=PREFIX_EMBEDDING, tags=["embedding"]
)
fastapi_app.include_router(
notification_router, prefix=PREFIX_NOTIFICATION, tags=["notification"]
)
fastapi_app.include_router(
data_slice_router, prefix=PREFIX_DATA_SLICE, tags=["data-slice"]
)
fastapi_app.include_router(
lookup_lists_router, prefix=PREFIX_LOOKUP_LISTS, tags=["lookup-lists"]
)
fastapi_app.include_router(
heuristic_router, prefix=PREFIX_HEURISTIC, tags=["heuristic"]
)
fastapi_app.include_router(
data_browser_router, prefix=PREFIX_DATA_BROWSER, tags=["data-browser"]
)
fastapi_app.include_router(labeling_router, prefix=PREFIX_LABELING, tags=["labeling"])
fastapi_app.include_router(
record_ide_router, prefix=PREFIX_RECORD_IDE, tags=["record-ide"]
),
fastapi_app.include_router(record_router, prefix=PREFIX_RECORD, tags=["record"]),
fastapi_app.include_router(
weak_supervision_router, prefix=PREFIX_WEAK_SUPERVISION, tags=["weak-supervision"]
)
fastapi_app.include_router(
labeling_tasks_router, prefix=PREFIX_LABELING_TASKS, tags=["labeling-tasks"]
)

routes = [
Route(
Expand Down Expand Up @@ -64,6 +149,7 @@
Route("/project", ProjectCreationFromWorkflow),
Route("/is_managed", IsManagedRest),
Route("/is_demo", IsDemoRest),
Mount("/api", app=fastapi_app, name="REST API"),
]

middleware = [Middleware(DatabaseSessionHandler)]
Expand Down
55 changes: 54 additions & 1 deletion controller/auth/kratos.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
from typing import Union, Any
from typing import Union, Any, List, Optional, Dict
from requests import Response
import os
import requests
Expand Down Expand Up @@ -32,3 +32,56 @@ def resolve_user_name_by_id(user_id: str) -> str:
if res.status_code == 200 and data["traits"]:
return data["traits"]["name"]
return None


def resolve_all_user_ids(
relevant_ids: List[str], as_list: bool = True
) -> List[Dict[str, str]]:
final = [] if as_list else {}
for id in relevant_ids:
r = requests.get(f"{KRATOS_ADMIN_URL}/identities/{id}").json()
d = {
"id": id,
"mail": None,
"firstName": None,
"lastName": None,
}
if "traits" in r:
traits = r["traits"]
d["mail"] = traits["email"]
d["firstName"] = traits["name"]["first"]
d["lastName"] = traits["name"]["last"]
if as_list:
final.append(d)
else:
final[id] = d
return final


def expand_user_mail_name(
users: List[Dict[str, str]], user_id_key="id"
) -> List[Dict[str, str]]:
final = []
for user in users:
r = requests.get(f"{KRATOS_ADMIN_URL}/identities/{user[user_id_key]}").json()
d = {
"mail": None,
"firstName": None,
"lastName": None,
}
if "traits" in r:
traits = r["traits"]
d["mail"] = traits["email"]
d["firstName"] = traits["name"]["first"]
d["lastName"] = traits["name"]["last"]
user = {**user, **d}
final.append(user)
return final


def resolve_user_name_and_email_by_id(user_id: str) -> dict:
res: Response = requests.get("{}/identities/{}".format(KRATOS_ADMIN_URL, user_id))
data: Any = res.json()
if res.status_code == 200 and data["traits"]:
return data["traits"]["name"], data["traits"]["email"]
return None
22 changes: 18 additions & 4 deletions controller/auth/manager.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
from typing import Any, Dict, List, Set

from fastapi import Request
from graphene import ResolveInfo
from controller.misc import config_service
from exceptions.exceptions import NotAllowedInDemoError
from exceptions.exceptions import NotAllowedInDemoError, ProjectAccessError
import jwt
from graphql import GraphQLError
from controller.project import manager as project_manager
Expand All @@ -13,6 +14,8 @@
from controller.misc import manager as misc_manager
import sqlalchemy

DEV_USER_ID = "59e8dfca-ce56-44df-a8c7-5f05c61da499"


def get_organization_id_by_info(info) -> Organization:
organization: Organization = get_user_by_info(info).organization
Expand All @@ -22,7 +25,11 @@ def get_organization_id_by_info(info) -> Organization:


def get_user_by_info(info) -> User:
user_id: str = get_user_id_by_jwt_token(info.context["request"])
request = info.context["request"]
if request.url.hostname == "localhost" and request.url.port == 7051:
user_id = DEV_USER_ID
else:
user_id: str = get_user_id_by_jwt_token(request)
return user_manager.get_or_create_user(user_id)


Expand Down Expand Up @@ -61,6 +68,13 @@ def get_user_id_by_jwt_token(request) -> str:
return claims["session"]["identity"]["id"]


def check_project_access_dep(request: Request, project_id: str):
if len(project_id) == 36:
check_project_access(request.state.info, project_id)
else:
raise ProjectAccessError


def check_project_access(info, project_id: str) -> None:
organization_id: str = get_organization_id_by_info(info).id
project: Project = project_manager.get_project_with_orga_id(
Expand Down Expand Up @@ -110,14 +124,14 @@ def check_is_admin(request: Any) -> bool:
return False


def check_demo_access(info: ResolveInfo) -> None:
def check_demo_access(info: Any) -> None:
if not check_is_admin(info.context["request"]) and config_service.get_config_value(
"is_demo"
):
check_black_white(info)


def check_black_white(info: ResolveInfo):
def check_black_white(info: Any):
black_white = misc_manager.get_black_white_demo()
if str(info.parent_type) == "Mutation":
if info.field_name not in black_white["mutations"]:
Expand Down
12 changes: 8 additions & 4 deletions controller/comment/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,10 @@ def get_comment(xftype: str, user_id: str, comment_id: str) -> CommentData:
return comments.get_as_json(comment_id, user_id)


def get_comment_by_comment_id(user_id: str, comment_id: str) -> CommentData:
return comments.get_as_json(comment_id, user_id)


def get_add_info(
xftype: str,
project_id: Optional[str] = None,
Expand Down Expand Up @@ -100,24 +104,24 @@ def update_comment(
item = comments.get(comment_id)

if not item:
raise ValueError(f"Can't find comment")
raise ValueError("Can't find comment")

if user.role != enums.UserRoles.ENGINEER.value and user.id != item.created_by:
raise ValueError(f"Can't update comment")
raise ValueError("Can't update comment")
comments.change(item, changes, with_commit=True)
return item


def delete_comment(comment_id: str, user_id: str) -> CommentData:
item = comments.get(comment_id)
if not item:
raise ValueError(f"Can't find comment")
raise ValueError("Can't find comment")

if (
item.created_by != user_id
and user_manager.get_user_role_by_id(user_id) != enums.UserRoles.ENGINEER.value
):
raise ValueError(f"Can't delete comment")
raise ValueError("Can't delete comment")
comments.remove(comment_id, with_commit=True)


Expand Down
66 changes: 65 additions & 1 deletion controller/embedding/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,15 @@
from . import connector
from .terms import TERMS_INFO
from controller.model_provider import manager as model_manager
from submodules.model.business_objects import attribute, embedding, agreement, general
from submodules.model.business_objects import (
attribute,
embedding,
agreement,
general,
project,
)
from submodules.model.util import sql_alchemy_to_dict
from controller.embedding.connector import collection_on_qdrant


def get_terms_info(
Expand Down Expand Up @@ -137,6 +145,62 @@ def get_embedding_name(
return name


EMBEDDING_SCHEMA_WHITELIST = [
"id",
"name",
"custom",
"type",
"state",
"progress",
"dimension",
"count",
"platform",
"model",
"filter_attributes",
"attribute_id",
]


def get_embedding_schema(project_id: str) -> List[Dict[str, Any]]:
embeddings = embedding.get_all_embeddings_by_project_id(project_id)
embedding_dict = sql_alchemy_to_dict(
embeddings, column_whitelist=EMBEDDING_SCHEMA_WHITELIST
)
number_records = len(project.get(project_id).records)
expanded_embeddings = []
for embed in embedding_dict:
count = embedding.get_tensor_count(embed["id"])
onQdrant = collection_on_qdrant(project_id, embed["id"])

embedding_item = embedding.get_tensor(embed["id"])
dimension = 0
if embedding_item is not None:
# distinguish between token and attribute embeddings
if type(embedding_item.data[0]) is list:
dimension = len(embedding_item.data[0])
else:
dimension = len(embedding_item.data)

if embed["state"] == "FINISHED":
progress = 1
elif embed["state"] == "INITIALIZING" or embed["state"] == "WAITING":
progress = 0.0
else:
progress = min(
0.1 + (count / number_records * 0.9),
0.99,
)
expanded_embed = {
**embed,
"progress": progress,
"count": count,
"dimension": dimension,
"onQdrant": onQdrant,
}
expanded_embeddings.append(expanded_embed)
return {"id": project_id, "embeddings": expanded_embeddings}


def recreate_embeddings(
project_id: str, embedding_ids: Optional[List[str]] = None, user_id: str = None
) -> None:
Expand Down
2 changes: 1 addition & 1 deletion controller/knowledge_term/manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
EntityAlreadyExistsException,
EntityNotFoundException,
)
from submodules.model.business_objects import general, knowledge_term, knowledge_base
from submodules.model.business_objects import knowledge_term, knowledge_base
from util.notification import create_notification


Expand Down
2 changes: 1 addition & 1 deletion controller/labeling_task/manager.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from submodules.model import LabelingTask
from .util import resolve_attribute_information
from submodules.model.business_objects import labeling_task, general, attribute
from submodules.model.business_objects import labeling_task, attribute


def get_labeling_task(project_id: str, labeling_task_id: str) -> LabelingTask:
Expand Down
Loading