Skip to content

Commit 6ef687a

Browse files
committed
feat(viking_url): viking mem and db envs (DATABASE_VIKINGMEM_BASE_URL and DATABASE_VIKING_BASE_URL)
1 parent 4a92b15 commit 6ef687a

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed

veadk/consts.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,3 +72,6 @@
7272
DEFAULT_IMAGE_GENERATE_MODEL_API_BASE = "https://ark.cn-beijing.volces.com/api/v3/"
7373

7474
VEFAAS_IAM_CRIDENTIAL_PATH = "/var/run/secrets/iam/credential"
75+
76+
DEFAULT_VIKING_BASE_URL = "api-knowledgebase.mlp.cn-beijing.volces.com"
77+
DEFAULT_VIKINGMEM_BASE_URL = "api-knowledgebase.mlp.cn-beijing.volces.com"

veadk/integrations/ve_viking_db_memory/ve_viking_db_memory.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import json
1616
import threading
17-
17+
from veadk.utils.misc import getenv
1818
from volcengine.ApiInfo import ApiInfo
1919
from volcengine.auth.SignerV4 import SignerV4
2020
from volcengine.base.Service import Service
@@ -55,6 +55,21 @@ def __init__(
5555
connection_timeout=30,
5656
socket_timeout=30,
5757
):
58+
env_host = getenv(
59+
"DATABASE_VIKINGMEM_BASE_URL", "api-knowledgebase.mlp.cn-beijing.volces.com"
60+
)
61+
# check if the environment variable contains protocol
62+
if env_host.startswith("http://"):
63+
host = env_host.replace("http://", "")
64+
scheme = "http"
65+
elif env_host.startswith("https://"):
66+
host = env_host.replace("https://", "")
67+
scheme = "https"
68+
else:
69+
# default http
70+
host = env_host
71+
scheme = "http"
72+
5873
self.service_info = VikingDBMemoryClient.get_service_info(
5974
host, region, scheme, connection_timeout, socket_timeout
6075
)

veadk/knowledgebase/backends/vikingdb_knowledge_backend.py

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import requests
2323
from pydantic import Field
2424
from typing_extensions import override
25-
25+
from veadk.utils.misc import getenv
2626
import veadk.config # noqa E401
2727
from veadk.auth.veauth.utils import get_credential_from_vefaas_iam
2828
from veadk.configs.database_configs import NormalTOSConfig, TOSConfig
@@ -58,6 +58,23 @@ def get_files_in_directory(directory: str):
5858
return file_paths
5959

6060

61+
def _normalize_base_url(base_url: str) -> str:
62+
"""Normalize base URL: if already has scheme, return as-is; otherwise add http://
63+
64+
Args:
65+
base_url: Base URL string
66+
67+
Returns:
68+
Normalized URL with scheme
69+
"""
70+
if not base_url:
71+
return base_url
72+
if base_url.startswith(("http://", "https://")):
73+
return base_url
74+
# PrivateLink URLs use http only
75+
return f"http://{base_url}"
76+
77+
6178
class VikingDBKnowledgeBackend(BaseKnowledgebaseBackend):
6279
"""Volcengine Viking DB knowledgebase backend.
6380
@@ -557,7 +574,18 @@ def _do_request(
557574
path: str,
558575
method: Literal["GET", "POST", "PUT", "DELETE"] = "POST",
559576
) -> dict:
560-
VIKINGDB_KNOWLEDGEBASE_BASE_URL = "api-knowledgebase.mlp.cn-beijing.volces.com"
577+
base_url = getenv(
578+
"DATABASE_VIKING_BASE_URL", "api-knowledgebase.mlp.cn-beijing.volces.com"
579+
)
580+
if base_url.startswith(("http://", "https://")):
581+
full_url = f"{base_url}{path}"
582+
else:
583+
scheme = (
584+
"https"
585+
if base_url == "api-knowledgebase.mlp.cn-beijing.volces.com"
586+
else "http"
587+
)
588+
full_url = f"{scheme}://{base_url}{path}"
561589

562590
volcengine_access_key = self.volcengine_access_key
563591
volcengine_secret_key = self.volcengine_secret_key
@@ -577,9 +605,10 @@ def _do_request(
577605
method=method,
578606
data=body,
579607
)
608+
580609
response = requests.request(
581610
method=method,
582-
url=f"https://{VIKINGDB_KNOWLEDGEBASE_BASE_URL}{path}",
611+
url=full_url,
583612
headers=request.headers,
584613
data=request.body,
585614
)

0 commit comments

Comments
 (0)