Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 28 additions & 15 deletions nnll_15/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
mir_db = JSONCache(CONFIG_PATH_NAMED)

# Order is important for this list since it is used for LibType below
# 0 1 2 3 4 5
API_NAMES: list = ["ollama", "huggingface_hub", "lmstudio", "cortex", "llamafile", "vllm"]


Expand All @@ -25,31 +26,43 @@ def check_and_import() -> Tuple[bool]:
Returns True if the module is successfully imported or already available, False otherwise."""

import requests
from requests.exceptions import ConnectionError
import json
from urllib3.exceptions import NewConnectionError, MaxRetryError

cortex_server: bool = False
llamafile_server: bool = False
for api in API_NAMES:
if api == "cortex":
response = requests.get("http://127.0.0.1:39281/v1/chat/completions", timeout=(3, 3))
if response is not None:
try:
try:
response = requests.get("http://127.0.0.1:39281/v1/chat/completions", timeout=(3, 3))
if response is not None:
data = response.json()
except (json.decoder.JSONDecodeError, ConnectionError, ConnectionRefusedError, MaxRetryError, NewConnectionError):
continue
if data.get("result") == "OK":
cortex_server = True
if data.get("result") == "OK":
cortex_server = True
except (
json.decoder.JSONDecodeError,
requests.exceptions.ConnectionError,
ConnectionRefusedError,
MaxRetryError,
NewConnectionError,
):
continue

elif api == "llamafile":
response = requests.get("http://localhost:8080/v1", timeout=(3, 3))
if response is not None:
try:
try:
response = requests.get("http://localhost:8080/v1", timeout=(3, 3))
if response is not None:
data = response.json()
except (json.decoder.JSONDecodeError, ConnectionError, ConnectionRefusedError, MaxRetryError, NewConnectionError):
continue
if data.get("result") == "OK":
llamafile_server = True
if data.get("result") == "OK":
llamafile_server = True
except (
json.decoder.JSONDecodeError,
requests.exceptions.ConnectionError,
ConnectionRefusedError,
MaxRetryError,
NewConnectionError,
):
continue

try:
__import__(api)
Expand Down