about summary refs log tree commit diff stats
path: root/archive/2025/summer/bsc_gerg/src/main.py
diff options
context:
space:
mode:
authorJonas Gerg <joniogerg@gmail.com>2025-09-09 20:06:52 +0200
committerJonas Gerg <joniogerg@gmail.com>2025-09-09 20:06:52 +0200
commit3e5d3ca82193e8e8561beb9ceac9982f376d84e2 (patch)
tree76e4c260123b68b93da2417482024ba11f9838ee /archive/2025/summer/bsc_gerg/src/main.py
parenta910d0a3e57f4de47cf2387ac239ae8d0eaca507 (diff)
downloadresearch-work-archive-artifacts-3e5d3ca82193e8e8561beb9ceac9982f376d84e2.tar.gz
research-work-archive-artifacts-3e5d3ca82193e8e8561beb9ceac9982f376d84e2.zip
Add bsc_gerg
Diffstat (limited to 'archive/2025/summer/bsc_gerg/src/main.py')
-rw-r--r--archive/2025/summer/bsc_gerg/src/main.py67
1 files changed, 67 insertions, 0 deletions
diff --git a/archive/2025/summer/bsc_gerg/src/main.py b/archive/2025/summer/bsc_gerg/src/main.py
new file mode 100644
index 000000000..eec0b2cf1
--- /dev/null
+++ b/archive/2025/summer/bsc_gerg/src/main.py
@@ -0,0 +1,67 @@
+"""
+
+This acts as the TerminologyResource
+
+
+"""
+
+import os
+import shutil
+import tempfile
+from typing import Optional
+
+from fastapi import FastAPI, UploadFile
+from pydantic import BaseModel
+from starlette.staticfiles import StaticFiles
+
+from src.terminology.session import SessionManager, KnowledgeSourcePolicy
+from src.terminology.terminology import Blackboard
+
+app = FastAPI()
+
+app.mount("/demo", StaticFiles(directory="html", html=True), name="demo")
+
+class TextRequestBody(BaseModel):
+    text: str
+    context: Optional[str] = None
+
+
+@app.post("/extractTerminology")
+async def process_text(request: TextRequestBody) -> Blackboard:
+    session = SessionManager.create_session(KnowledgeSourcePolicy(use_llm=True))
+    blackboard = await session.extract_terminology(request.text, context=request.context)
+    SessionManager.remove_session(session_id=session.id)
+    return blackboard
+
+@app.post("/processText")
+async def process_text(request: TextRequestBody) -> Blackboard:
+    session = SessionManager.create_session(KnowledgeSourcePolicy(use_llm=True))
+    blackboard = await session.retrieve_term_definition(request.text, context=request.context)
+    SessionManager.remove_session(session_id=session.id)
+    return blackboard
+
+@app.post("/processFile")
+async def process_file(file: UploadFile) -> Blackboard:
+    temp_dir = tempfile.gettempdir()
+    file_path = os.path.join(temp_dir, file.filename)
+
+    with open(file_path, "wb") as buffer:
+        shutil.copyfileobj(file.file, buffer)
+
+    session = SessionManager.create_session(KnowledgeSourcePolicy(use_llm=True))
+
+    blackboard = await session.process_document(file_path)
+
+    SessionManager.remove_session(session_id=session.id)
+
+    os.unlink(file_path)
+
+    return blackboard
+
+
+@app.get("/simple")
+async def process_simple(text: str) -> Blackboard:
+    session = SessionManager.create_session(KnowledgeSourcePolicy(use_llm=True))
+    blackboard = await session.retrieve_term_definition(text)
+    SessionManager.remove_session(session_id=session.id)
+    return blackboard
\ No newline at end of file