diff --git a/.gitignore b/.gitignore index bc4a666..767edb9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +<<<<<<< HEAD # Byte-compiled / optimized / DLL files __pycache__/ *.py[codz] @@ -209,4 +210,182 @@ __marimo__/ #custom data/* db/* -instance/* \ No newline at end of file +instance/* +======= +# ---> Python +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest +*.spec + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ +cover/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# UV +# Similar to Pipfile.lock, it is generally recommended to include uv.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +#uv.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/latest/usage/project/#working-with-version-control +.pdm.toml +.pdm-python +.pdm-build/ + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +# Ruff stuff: +.ruff_cache/ + +# PyPI configuration file +.pypirc + +>>>>>>> 62e76f904432a8905dc0c58c62c88090d88d038d diff --git a/README.md b/README.md index a882713..5ebed3e 100644 --- a/README.md +++ b/README.md @@ -1 +1,6 @@ -# Meyar \ No newline at end of file +<<<<<<< HEAD +# Meyar +======= +# Meyar + +>>>>>>> 62e76f904432a8905dc0c58c62c88090d88d038d diff --git a/src/backend/Dockerfile b/src/backend/Dockerfile index 2f3a50e..0757db7 100644 --- a/src/backend/Dockerfile +++ b/src/backend/Dockerfile @@ -2,32 +2,23 @@ FROM python:3.11-slim WORKDIR /app -# Install system dependencies -RUN apt-get update && apt-get install -y \ - gcc \ - g++ \ - build-essential \ +COPY requirements.txt . + +RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ wget \ git \ - && rm -rf /var/lib/apt/lists/* + build-essential \ + cmake \ + && rm -rf /var/lib/apt/lists/* \ + && pip install --no-cache-dir --upgrade pip wheel setuptools \ + && pip install --no-cache-dir --upgrade langchain langchain-core langchain-community \ + && pip install --no-cache-dir -r requirements.txt \ + && apt-get purge -y --auto-remove build-essential cmake -# Copy requirements first for better caching -COPY requirements.txt . -RUN pip install --no-cache-dir --upgrade pip && \ - pip install --no-cache-dir wheel setuptools && \ - pip install --no-cache-dir -r requirements.txt && \ - pip install fastapi==0.111.0 - pip install torch==2.1.0 --index-url https://download.pytorch.org/whl/cpu - -# Copy application code COPY . . -# Create necessary directories RUN mkdir -p /app/faiss_index /root/.cache/huggingface -# Expose port EXPOSE 8000 - -# Run the application -CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000", "--reload"] \ No newline at end of file +CMD ["python", "main.py"] diff --git a/src/backend/main.py b/src/backend/main.py index febcdc9..1632fc1 100644 --- a/src/backend/main.py +++ b/src/backend/main.py @@ -3,14 +3,14 @@ import signal import threading +application = Application() def main(): - app = Application() try: - app.run_fastapi() + application.run_fastapi() except KeyboardInterrupt: print("\nFastAPI server interrupted.") finally: print("Application shutdown complete.") if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/src/backend/requirements.txt b/src/backend/requirements.txt index 69fbc72..8cd15d7 100644 --- a/src/backend/requirements.txt +++ b/src/backend/requirements.txt @@ -1,7 +1,3 @@ -# Python Package Requirements (generated from conda 'nlp' environment) -# Note: System/Conda-specific packages (like cuda, blas, compilers) have been filtered out. -# It is recommended to use within a Python virtual environment. - # Core ML & Data Science numpy==1.26.4 pandas==2.3.3 @@ -20,9 +16,9 @@ faiss-cpu==1.9.0 hnswlib==0.8.0 # LangChain Ecosystem -langchain==0.3.27 -langchain-core==0.3.79 -langchain-community==0.3.27 +langchain==0.3.30 +langchain-core==0.3.85 +langchain-community==0.3.30 langchain-openai==0.3.35 langchain-anthropic==0.3.22 langchain-huggingface==0.3.1 @@ -31,6 +27,7 @@ langgraph==1.0.1 langgraph-checkpoint==3.0.1 langgraph-sdk==0.2.9 langsmith==0.4.32 +langmem==0.0.30 # LLM Libraries & APIs openai==2.8.0 @@ -41,9 +38,9 @@ sentence-transformers==5.1.2 llama-cpp-python==0.3.16 # Web & Async -fastapi==0.111.0 -uvicorn==0.29.0 -starlette==0.37.2 +fastapi==0.134.0 +uvicorn==0.34.0 +starlette==0.46.0 pydantic==2.12.3 pydantic-core==2.41.4 pydantic-settings==2.11.0 @@ -102,7 +99,7 @@ optree==0.17.0 typing-extensions==4.15.0 importlib-metadata==8.7.0 packaging==25.0 -requests==2.32.3 +requests==2.32.5 # ⬅️ Upgraded from 2.32.3 to 2.32.5 urllib3==2.5.0 certifi==2025.11.12 charset-normalizer==3.4.4 @@ -113,7 +110,6 @@ argon2-cffi==21.3.0 python-multipart==0.0.20 trustcall==0.0.39 dydantic==0.0.8 -langmem==0.0.30 distro==1.9.0 webencodings==0.5.1 -zstandard==0.25.0 +zstandard==0.25.0 \ No newline at end of file diff --git a/src/frontend/DockerFile b/src/frontend/Dockerfile similarity index 100% rename from src/frontend/DockerFile rename to src/frontend/Dockerfile