From 3e3eee8ebf164dddca13d74f37eacec1f8ac8c26 Mon Sep 17 00:00:00 2001 From: Cristiano Hoshikawa Date: Tue, 2 Sep 2025 22:21:05 -0300 Subject: [PATCH] First commit --- README.md | 2 ++ __init__.py => files/__init__.py | 0 app.py => files/app.py | 0 config.py => files/config.py | 0 files/mdm_project.zip | Bin 0 -> 21402 bytes {prompts => files/prompts}/__init__.py | 0 {prompts => files/prompts}/address_prompt.txt | 0 {prompts => files/prompts}/customer_prompt.txt | 0 requirements.txt => files/requirements.txt | 0 run.sh => files/run.sh | 0 schemas.py => files/schemas.py | 0 {services => files/services}/__init__.py | 0 {services => files/services}/address_service.py | 2 +- {services => files/services}/common.py | 0 {services => files/services}/dedupe_service.py | 0 {services => files/services}/enrich_service.py | 0 {services => files/services}/golden_service.py | 0 .../services}/harmonize_service.py | 0 .../services}/normalize_service.py | 4 ++-- {services => files/services}/zipcode_service.py | 0 20 files changed, 5 insertions(+), 3 deletions(-) rename __init__.py => files/__init__.py (100%) rename app.py => files/app.py (100%) rename config.py => files/config.py (100%) create mode 100644 files/mdm_project.zip rename {prompts => files/prompts}/__init__.py (100%) rename {prompts => files/prompts}/address_prompt.txt (100%) rename {prompts => files/prompts}/customer_prompt.txt (100%) rename requirements.txt => files/requirements.txt (100%) rename run.sh => files/run.sh (100%) rename schemas.py => files/schemas.py (100%) rename {services => files/services}/__init__.py (100%) rename {services => files/services}/address_service.py (98%) rename {services => files/services}/common.py (100%) rename {services => files/services}/dedupe_service.py (100%) rename {services => files/services}/enrich_service.py (100%) rename {services => files/services}/golden_service.py (100%) rename {services => files/services}/harmonize_service.py (100%) rename {services => files/services}/normalize_service.py (95%) rename {services => files/services}/zipcode_service.py (100%) diff --git a/README.md b/README.md index 8c65429..94bd76e 100644 --- a/README.md +++ b/README.md @@ -149,6 +149,8 @@ flowchart TD ## 5. Deploy the Application +You can download the source-code here: [mdm_project.zip](./files/mdm_project.zip) + ### Ollama on OCI A10 — Two-GPU Installation & Configuration (Step-by-Step) This section explains how to install **Ollama** on an Oracle Linux VM with **two NVIDIA A10 GPUs**, run **one Ollama service per GPU** via `systemd`, pull and tune the **Qwen 2.5 7B** model, and configure your app (`config.py` and `run.sh`) to use both endpoints concurrently. diff --git a/__init__.py b/files/__init__.py similarity index 100% rename from __init__.py rename to files/__init__.py diff --git a/app.py b/files/app.py similarity index 100% rename from app.py rename to files/app.py diff --git a/config.py b/files/config.py similarity index 100% rename from config.py rename to files/config.py diff --git a/files/mdm_project.zip b/files/mdm_project.zip new file mode 100644 index 0000000000000000000000000000000000000000..8e12b19406a4b6cd914112878b5051d9ef3c06be GIT binary patch literal 21402 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 literal 0 HcmV?d00001 diff --git a/prompts/__init__.py b/files/prompts/__init__.py similarity index 100% rename from prompts/__init__.py rename to files/prompts/__init__.py diff --git a/prompts/address_prompt.txt b/files/prompts/address_prompt.txt similarity index 100% rename from prompts/address_prompt.txt rename to files/prompts/address_prompt.txt diff --git a/prompts/customer_prompt.txt b/files/prompts/customer_prompt.txt similarity index 100% rename from prompts/customer_prompt.txt rename to files/prompts/customer_prompt.txt diff --git a/requirements.txt b/files/requirements.txt similarity index 100% rename from requirements.txt rename to files/requirements.txt diff --git a/run.sh b/files/run.sh similarity index 100% rename from run.sh rename to files/run.sh diff --git a/schemas.py b/files/schemas.py similarity index 100% rename from schemas.py rename to files/schemas.py diff --git a/services/__init__.py b/files/services/__init__.py similarity index 100% rename from services/__init__.py rename to files/services/__init__.py diff --git a/services/address_service.py b/files/services/address_service.py similarity index 98% rename from services/address_service.py rename to files/services/address_service.py index 38af1c5..0267a6c 100644 --- a/services/address_service.py +++ b/files/services/address_service.py @@ -1,6 +1,6 @@ import httpx, json, itertools, logging, time, asyncio, re from pathlib import Path -from config import settings +from files.config import settings from .common import safe_json_from_text logger = logging.getLogger("mdm.services") diff --git a/services/common.py b/files/services/common.py similarity index 100% rename from services/common.py rename to files/services/common.py diff --git a/services/dedupe_service.py b/files/services/dedupe_service.py similarity index 100% rename from services/dedupe_service.py rename to files/services/dedupe_service.py diff --git a/services/enrich_service.py b/files/services/enrich_service.py similarity index 100% rename from services/enrich_service.py rename to files/services/enrich_service.py diff --git a/services/golden_service.py b/files/services/golden_service.py similarity index 100% rename from services/golden_service.py rename to files/services/golden_service.py diff --git a/services/harmonize_service.py b/files/services/harmonize_service.py similarity index 100% rename from services/harmonize_service.py rename to files/services/harmonize_service.py diff --git a/services/normalize_service.py b/files/services/normalize_service.py similarity index 95% rename from services/normalize_service.py rename to files/services/normalize_service.py index a3874a7..d3617f6 100644 --- a/services/normalize_service.py +++ b/files/services/normalize_service.py @@ -1,8 +1,8 @@ import httpx, json, itertools, logging, time, asyncio from pathlib import Path -from config import settings +from files.config import settings from .common import safe_json_from_text -from services.zipcode_service import enrich_address_with_zipcode +from files.services.zipcode_service import enrich_address_with_zipcode logger = logging.getLogger("mdm.services") _rr = itertools.count() diff --git a/services/zipcode_service.py b/files/services/zipcode_service.py similarity index 100% rename from services/zipcode_service.py rename to files/services/zipcode_service.py