diff --git a/.gitignore b/.gitignore index 79b85b93d3875472a2cef1fd10ab6a2aa53b0e79..6609e2b52a8167d7633d53087d93804b72ffd227 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ *env/ .env +*.egg-* *.pyc +*.txt config.txt diff --git a/Dockerfile b/Dockerfile index 273811c9f2646757d1fa0280050acab30641049b..b2dd42d08c62277e5c5f2789ea89bb129f112e3c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -9,10 +9,13 @@ RUN conda env update -q -f /tmp/environment.yml && \ conda env export -n "root" && \ jupyter lab build -COPY dash_proxy.py setup.py /tmp/dash_proxy/ RUN pip3 install --upgrade pip + +COPY dash_proxy /tmp/dash_proxy/ RUN pip install /tmp/dash_proxy/ -# copy dash app -COPY app ${HOME}/app/ -RUN chown -R jovyan ${HOME}/app/ +COPY llm_utils /llm_utils/ +RUN pip install /llm_utils/ + +COPY app /dash/app/ +RUN chown -R jovyan /dash/app/ diff --git a/app/app.py b/app/app.py index 449201124aa13717bd499ec6ea0a55b431c101e9..604849e09dcb66adf48675d9192e00f9ea6828e1 100644 --- a/app/app.py +++ b/app/app.py @@ -1,6 +1,5 @@ -import os import sys -sys.path.append(os.path.dirname(os.path.abspath(__file__))) +sys.path.append("/home/jovyan/") import argparse import logging diff --git a/app/callbacks.py b/app/callbacks.py index 5b288f2459c8fc7ad03a856a1ff15634d0e45abe..6076465849aca4147f3158bc3fe3d50db435cbfa 100644 --- a/app/callbacks.py +++ b/app/callbacks.py @@ -10,7 +10,7 @@ from dash.dependencies import ( State ) -from client import ChatGPT +from llm_utils.client import ChatGPT def format_chat_messages(chat_history): diff --git a/dash_proxy.py b/dash_proxy/dash_proxy.py similarity index 63% rename from dash_proxy.py rename to dash_proxy/dash_proxy.py index b7add298fdc2cd47baa0d17dd2cd052dc3f85b0d..309e977e30e4ae08b01c6f3c3734e673b94fb444 100644 --- a/dash_proxy.py +++ b/dash_proxy/dash_proxy.py @@ -1,16 +1,7 @@ -import os -import logging - -logger = logging.getLogger(__name__) -logger.setLevel('INFO') - -HERE = os.path.dirname(os.path.abspath(__file__)) - - def setup_dash_proxy(): command = [ 'python', - 'app/app.py', + '/dash/app/app.py', '--port', '{port}' ] diff --git a/setup.py b/dash_proxy/setup.py similarity index 100% rename from setup.py rename to dash_proxy/setup.py diff --git a/llm_utils/setup.py b/llm_utils/setup.py new file mode 100644 index 0000000000000000000000000000000000000000..737729b7716520f1c36d7351fea156faee49258f --- /dev/null +++ b/llm_utils/setup.py @@ -0,0 +1,14 @@ +import setuptools + +setuptools.setup( + author="Julian Rasch", + author_email="julian.rasch@fh-muenster.de", + description="Helper modules to work with LLMs.", + name="llm_utils", + package_dir={"": "src"}, + packages=setuptools.find_packages(where="src"), + install_requires=[ + "openai", + "python-dotenv" + ] +) diff --git a/llm_utils/src/__init__.py b/llm_utils/src/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/llm_utils/src/llm_utils/__init__.py b/llm_utils/src/llm_utils/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/app/client.py b/llm_utils/src/llm_utils/client.py similarity index 85% rename from app/client.py rename to llm_utils/src/llm_utils/client.py index 5b95e0793e4619dfc1fdfde8882678651bc1de05..82ceeac15722b63c195615bcb18a5563f36d349d 100644 --- a/app/client.py +++ b/llm_utils/src/llm_utils/client.py @@ -1,17 +1,23 @@ import os +import logging from openai import AzureOpenAI from dotenv import load_dotenv from enum import Enum - -found_dotenv = load_dotenv( - "config.txt", - override=True -) +try: + found_dotenv = load_dotenv( + "/home/jovyan/config.txt", + override=True + ) +except ValueError: + logging.warn("Could not detect config.txt in /home/jovyan/. Searching in current folder ...") + found_dotenv = load_dotenv( + "config.txt", + override=True) if not found_dotenv: - raise ValueError("Could not detect .env-file.") + raise ValueError("Could not detect config.txt in /home/jovyan/.") AZURE_OPENAI_API_KEY = os.environ.get("AZURE_OPENAI_API_KEY") AZURE_OPENAI_ENDPOINT = os.environ.get("AZURE_OPENAI_ENDPOINT")