diff --git a/src/main.py b/src/main.py index 1316ec92..a4520c04 100644 --- a/src/main.py +++ b/src/main.py @@ -2,11 +2,10 @@ import sys import json from typing import Optional -from src import search_type # External Packages import uvicorn -from fastapi import FastAPI, Request +from fastapi import FastAPI, Request, Body from fastapi.responses import HTMLResponse from fastapi.staticfiles import StaticFiles from fastapi.templating import Jinja2Templates @@ -17,6 +16,7 @@ from src.search_type import asymmetric, symmetric_ledger, image_search from src.utils.helpers import get_absolute_path from src.utils.cli import cli from src.utils.config import SearchType, SearchModels, TextSearchConfig, ImageSearchConfig, SearchConfig, ProcessorConfig, ConversationProcessorConfig +from src.utils.rawconfig import FullConfig from src.processor.conversation.gpt import converse, message_to_prompt # Application Global State @@ -26,14 +26,6 @@ processor_config = ProcessorConfig() config = {} app = FastAPI() -class Config(BaseModel): - content_type: Optional[SearchConfig] - search_type: Optional[SearchModels] - processor: Optional[ProcessorConfig] - - class Config: - arbitrary_types_allowed = True - app.mount("/views", StaticFiles(directory="views"), name="views") templates = Jinja2Templates(directory="views/") @@ -41,15 +33,14 @@ templates = Jinja2Templates(directory="views/") def ui(request: Request): return templates.TemplateResponse("config.html", context={'request': request}) -@app.get('/config') +@app.get('/config', response_model=FullConfig) def config(): return config @app.post('/config') -async def config(updated_config: Config): +async def config(updated_config: FullConfig): print(updated_config) - data = await updated_config.json() - return data + return updated_config @app.get('/search') def search(q: str, n: Optional[int] = 5, t: Optional[SearchType] = None): diff --git a/src/search_type/symmetric_ledger.py b/src/search_type/symmetric_ledger.py index 4d091371..de08019d 100644 --- a/src/search_type/symmetric_ledger.py +++ b/src/search_type/symmetric_ledger.py @@ -19,7 +19,7 @@ from src.utils.config import TextSearchModel, TextSearchConfig def initialize_model(): - "Initialize model for symetric semantic search. That is, where query of similar size to results" + "Initialize model for symmetric semantic search. That is, where query of similar size to results" torch.set_num_threads(4) bi_encoder = SentenceTransformer('sentence-transformers/paraphrase-MiniLM-L6-v2') # The encoder encodes all entries to use for semantic search top_k = 30 # Number of entries we want to retrieve with the bi-encoder diff --git a/src/utils/config.py b/src/utils/config.py index 7627697a..8bf39291 100644 --- a/src/utils/config.py +++ b/src/utils/config.py @@ -116,4 +116,4 @@ class ConversationProcessorConfig(): @dataclass class ProcessorConfig(): - conversation: ConversationProcessorConfig = None \ No newline at end of file + conversation: ConversationProcessorConfig = None diff --git a/src/utils/helpers.py b/src/utils/helpers.py index b9f60ef0..e2a3b1fe 100644 --- a/src/utils/helpers.py +++ b/src/utils/helpers.py @@ -4,6 +4,8 @@ import pathlib def is_none_or_empty(item): return item == None or (hasattr(item, '__iter__') and len(item) == 0) +def to_snake_case_from_dash(item: str): + return item.replace('_', '-') def get_absolute_path(filepath): return str(pathlib.Path(filepath).expanduser().absolute()) diff --git a/views/scripts/config.js b/views/scripts/config.js index d4b4b9ff..c2ea1937 100644 --- a/views/scripts/config.js +++ b/views/scripts/config.js @@ -19,6 +19,7 @@ fetch("/config") configForm.addEventListener("submit", (event) => { event.preventDefault(); + console.log(rawConfig); const response = fetch("/config", { method: "POST", credentials: "same-origin",