Skip to content

Commit 3d8c814

Browse files
authored
fix: adjustment of viking dependencies (#489)
1 parent e335733 commit 3d8c814

File tree

3 files changed

+56
-67
lines changed

3 files changed

+56
-67
lines changed

pyproject.toml

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,10 @@ dependencies = [
3434
"pymysql==1.1.1", # For MySQL database (short term memory)
3535
"aiomysql==0.3.2", # For async MySQL database (short term memory)
3636
"filetype==1.2.0",
37-
"vikingdb-python-sdk>=0.1.3",
37+
"vikingdb-python-sdk>=0.1.3", # For Viking DB
3838
"agentkit-sdk-python>=0.2.0",
3939
"python-frontmatter==1.1.0",
40+
"tos>=2.8.4", # For TOS storage and Viking DB
4041
]
4142

4243
[project.scripts]
@@ -45,7 +46,6 @@ veadk = "veadk.cli.cli:veadk"
4546
[project.optional-dependencies]
4647
extensions = [
4748
"redis>=5.0", # For Redis database
48-
"tos>=2.8.4", # For TOS storage and Viking DB
4949
"cozeloop>=0.1.21", # For Cozeloop Prompt manager
5050
"llama-index==0.14.0", # For KnowledgeBase and LongTermMemory
5151
"llama-index-embeddings-openai-like==0.2.2", # For Embeddings
@@ -58,7 +58,6 @@ database = [
5858
"redis>=5.0", # For Redis database
5959
"pymysql>=1.1.1", # For MySQL database
6060
"volcengine>=1.0.193", # For Viking DB
61-
"tos>=2.8.4", # For TOS storage and Viking DB
6261
"mem0ai==0.1.118", # For mem0
6362
]
6463
speech = []

veadk/knowledgebase/backends/utils.py

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,14 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
import json
1615
from pathlib import Path
17-
from typing import Literal
1816

1917
from llama_index.core.node_parser import (
2018
CodeSplitter,
2119
HTMLNodeParser,
2220
MarkdownNodeParser,
2321
SentenceSplitter,
2422
)
25-
from volcengine.auth.SignerV4 import SignerV4
26-
from volcengine.base.Request import Request
27-
from volcengine.Credentials import Credentials
2823

2924

3025
def get_llama_index_splitter(
@@ -40,53 +35,3 @@ def get_llama_index_splitter(
4035
return HTMLNodeParser()
4136
else:
4237
return SentenceSplitter(chunk_size=512, chunk_overlap=50)
43-
44-
45-
def build_vikingdb_knowledgebase_request(
46-
path: str,
47-
volcengine_access_key: str,
48-
volcengine_secret_key: str,
49-
session_token: str = "",
50-
method: Literal["GET", "POST", "PUT", "DELETE"] = "POST",
51-
region: str = "cn-beijing",
52-
params=None,
53-
data=None,
54-
doseq=0,
55-
) -> Request:
56-
if params:
57-
for key in params:
58-
if (
59-
type(params[key]) is int
60-
or type(params[key]) is float
61-
or type(params[key]) is bool
62-
):
63-
params[key] = str(params[key])
64-
elif type(params[key]) is list:
65-
if not doseq:
66-
params[key] = ",".join(params[key])
67-
68-
r = Request()
69-
r.set_shema("https")
70-
r.set_method(method)
71-
r.set_connection_timeout(10)
72-
r.set_socket_timeout(10)
73-
74-
mheaders = {
75-
"Accept": "application/json",
76-
"Content-Type": "application/json",
77-
}
78-
r.set_headers(mheaders)
79-
80-
if params:
81-
r.set_query(params)
82-
83-
r.set_path(path)
84-
85-
if data is not None:
86-
r.set_body(json.dumps(data))
87-
88-
credentials = Credentials(
89-
volcengine_access_key, volcengine_secret_key, "air", region, session_token
90-
)
91-
SignerV4.sign(r, credentials)
92-
return r

veadk/knowledgebase/backends/vikingdb_knowledge_backend.py

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
from pydantic import Field
2424
from typing_extensions import override
2525
from volcengine.viking_knowledgebase import VikingKnowledgeBaseService
26+
from volcengine.auth.SignerV4 import SignerV4
27+
from volcengine.base.Request import Request
28+
from volcengine.Credentials import Credentials
2629

2730
import veadk.config # noqa E401
2831
from veadk.auth.veauth.utils import (
@@ -31,23 +34,65 @@
3134
)
3235
from veadk.configs.database_configs import NormalTOSConfig, TOSConfig
3336
from veadk.knowledgebase.backends.base_backend import BaseKnowledgebaseBackend
34-
from veadk.knowledgebase.backends.utils import (
35-
build_vikingdb_knowledgebase_request,
36-
)
3737
from veadk.knowledgebase.entry import KnowledgebaseEntry
3838
from veadk.utils.logger import get_logger
3939
from veadk.utils.misc import formatted_timestamp, getenv
40+
from veadk.integrations.ve_tos.ve_tos import VeTOS
4041

41-
try:
42-
from veadk.integrations.ve_tos.ve_tos import VeTOS
43-
except ImportError:
44-
raise ImportError(
45-
"Please install VeADK extensions\npip install veadk-python[extensions]"
46-
)
4742

4843
logger = get_logger(__name__)
4944

5045

46+
def build_vikingdb_knowledgebase_request(
47+
path: str,
48+
volcengine_access_key: str,
49+
volcengine_secret_key: str,
50+
session_token: str = "",
51+
method: Literal["GET", "POST", "PUT", "DELETE"] = "POST",
52+
region: str = "cn-beijing",
53+
params=None,
54+
data=None,
55+
doseq=0,
56+
) -> Request:
57+
if params:
58+
for key in params:
59+
if (
60+
type(params[key]) is int
61+
or type(params[key]) is float
62+
or type(params[key]) is bool
63+
):
64+
params[key] = str(params[key])
65+
elif type(params[key]) is list:
66+
if not doseq:
67+
params[key] = ",".join(params[key])
68+
69+
r = Request()
70+
r.set_shema("https")
71+
r.set_method(method)
72+
r.set_connection_timeout(10)
73+
r.set_socket_timeout(10)
74+
75+
mheaders = {
76+
"Accept": "application/json",
77+
"Content-Type": "application/json",
78+
}
79+
r.set_headers(mheaders)
80+
81+
if params:
82+
r.set_query(params)
83+
84+
r.set_path(path)
85+
86+
if data is not None:
87+
r.set_body(json.dumps(data))
88+
89+
credentials = Credentials(
90+
volcengine_access_key, volcengine_secret_key, "air", region, session_token
91+
)
92+
SignerV4.sign(r, credentials)
93+
return r
94+
95+
5196
def _read_file_to_bytes(file_path: str) -> tuple[bytes, str]:
5297
"""Read file content to bytes, and file name"""
5398
with open(file_path, "rb") as f:

0 commit comments

Comments
 (0)