okoliechykwuka commited on
Commit ·
0d06c0b
1
Parent(s): 9f031f6
Add OLLAMA_BASE_URL support for chat and embeddings
Browse files- src/chat_service.py +6 -1
- src/ingest.py +3 -2
src/chat_service.py
CHANGED
|
@@ -13,6 +13,7 @@ from src.ingest import get_or_build_vectorstore
|
|
| 13 |
|
| 14 |
MAX_MEMORY_TURNS = int(os.getenv("RAG_MEMORY_TURNS", "6"))
|
| 15 |
LLM_MODEL = os.getenv("LLM_MODEL", "hf.co/LiquidAI/LFM2-1.2B-RAG-GGUF:Q5_K_M")
|
|
|
|
| 16 |
|
| 17 |
|
| 18 |
@dataclass
|
|
@@ -59,7 +60,11 @@ class RagChatService:
|
|
| 59 |
|
| 60 |
def _get_llm(self) -> ChatOllama:
|
| 61 |
if self._llm is None:
|
| 62 |
-
self._llm = ChatOllama(
|
|
|
|
|
|
|
|
|
|
|
|
|
| 63 |
return self._llm
|
| 64 |
|
| 65 |
def _format_context(self, question: str) -> str:
|
|
|
|
| 13 |
|
| 14 |
MAX_MEMORY_TURNS = int(os.getenv("RAG_MEMORY_TURNS", "6"))
|
| 15 |
LLM_MODEL = os.getenv("LLM_MODEL", "hf.co/LiquidAI/LFM2-1.2B-RAG-GGUF:Q5_K_M")
|
| 16 |
+
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434")
|
| 17 |
|
| 18 |
|
| 19 |
@dataclass
|
|
|
|
| 60 |
|
| 61 |
def _get_llm(self) -> ChatOllama:
|
| 62 |
if self._llm is None:
|
| 63 |
+
self._llm = ChatOllama(
|
| 64 |
+
model=LLM_MODEL,
|
| 65 |
+
temperature=0.2,
|
| 66 |
+
base_url=OLLAMA_BASE_URL,
|
| 67 |
+
)
|
| 68 |
return self._llm
|
| 69 |
|
| 70 |
def _format_context(self, question: str) -> str:
|
src/ingest.py
CHANGED
|
@@ -23,6 +23,7 @@ FAQ_PATH = _RAG_DIR / "faq.json"
|
|
| 23 |
CHROMA_DIR = _RAG_DIR / "chroma_db"
|
| 24 |
|
| 25 |
EMBED_MODEL = os.getenv("EMBED_MODEL", "embeddinggemma:latest")
|
|
|
|
| 26 |
COLLECTION_NAME = "naijalingo_faq"
|
| 27 |
|
| 28 |
|
|
@@ -50,7 +51,7 @@ def build_vectorstore(
|
|
| 50 |
embed_model: str = EMBED_MODEL,
|
| 51 |
) -> Chroma:
|
| 52 |
docs = load_faq_documents(faq_path)
|
| 53 |
-
embeddings = OllamaEmbeddings(model=embed_model)
|
| 54 |
|
| 55 |
chroma_dir.mkdir(parents=True, exist_ok=True)
|
| 56 |
vectorstore = Chroma.from_documents(
|
|
@@ -67,7 +68,7 @@ def load_vectorstore(
|
|
| 67 |
chroma_dir: Path = CHROMA_DIR,
|
| 68 |
embed_model: str = EMBED_MODEL,
|
| 69 |
) -> Chroma:
|
| 70 |
-
embeddings = OllamaEmbeddings(model=embed_model)
|
| 71 |
return Chroma(
|
| 72 |
collection_name=COLLECTION_NAME,
|
| 73 |
embedding_function=embeddings,
|
|
|
|
| 23 |
CHROMA_DIR = _RAG_DIR / "chroma_db"
|
| 24 |
|
| 25 |
EMBED_MODEL = os.getenv("EMBED_MODEL", "embeddinggemma:latest")
|
| 26 |
+
OLLAMA_BASE_URL = os.getenv("OLLAMA_BASE_URL", "http://localhost:11434")
|
| 27 |
COLLECTION_NAME = "naijalingo_faq"
|
| 28 |
|
| 29 |
|
|
|
|
| 51 |
embed_model: str = EMBED_MODEL,
|
| 52 |
) -> Chroma:
|
| 53 |
docs = load_faq_documents(faq_path)
|
| 54 |
+
embeddings = OllamaEmbeddings(model=embed_model, base_url=OLLAMA_BASE_URL)
|
| 55 |
|
| 56 |
chroma_dir.mkdir(parents=True, exist_ok=True)
|
| 57 |
vectorstore = Chroma.from_documents(
|
|
|
|
| 68 |
chroma_dir: Path = CHROMA_DIR,
|
| 69 |
embed_model: str = EMBED_MODEL,
|
| 70 |
) -> Chroma:
|
| 71 |
+
embeddings = OllamaEmbeddings(model=embed_model, base_url=OLLAMA_BASE_URL)
|
| 72 |
return Chroma(
|
| 73 |
collection_name=COLLECTION_NAME,
|
| 74 |
embedding_function=embeddings,
|