From cc492b0ffb7c99207bddaa4ca8d6764f176738a3 Mon Sep 17 00:00:00 2001 From: Julian <julian@edyoucated.org> Date: Mon, 11 Mar 2024 20:45:22 +0100 Subject: [PATCH] added python package for llm utilities --- .gitignore | 2 ++ Dockerfile | 11 +++++++---- app/app.py | 3 +-- app/callbacks.py | 2 +- dash_proxy.py => dash_proxy/dash_proxy.py | 11 +---------- setup.py => dash_proxy/setup.py | 0 llm_utils/setup.py | 14 ++++++++++++++ llm_utils/src/__init__.py | 0 llm_utils/src/llm_utils/__init__.py | 0 {app => llm_utils/src/llm_utils}/client.py | 18 ++++++++++++------ 10 files changed, 38 insertions(+), 23 deletions(-) rename dash_proxy.py => dash_proxy/dash_proxy.py (63%) rename setup.py => dash_proxy/setup.py (100%) create mode 100644 llm_utils/setup.py create mode 100644 llm_utils/src/__init__.py create mode 100644 llm_utils/src/llm_utils/__init__.py rename {app => llm_utils/src/llm_utils}/client.py (85%) diff --git a/.gitignore b/.gitignore index 79b85b9..6609e2b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ *env/ .env +*.egg-* *.pyc +*.txt config.txt diff --git a/Dockerfile b/Dockerfile index 273811c..b2dd42d 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 4492011..604849e 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 5b288f2..6076465 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 b7add29..309e977 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 0000000..737729b --- /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 0000000..e69de29 diff --git a/llm_utils/src/llm_utils/__init__.py b/llm_utils/src/llm_utils/__init__.py new file mode 100644 index 0000000..e69de29 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 5b95e07..82ceeac 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") -- GitLab