asktable-advisor 1.0.1__py3-none-any.whl → 1.0.3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- asktable_advisor/__main__.py +26 -13
- asktable_advisor/__version__.py +1 -1
- asktable_advisor/agent/llm_client.py +6 -4
- asktable_advisor/config.py +8 -2
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/METADATA +1 -1
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/RECORD +10 -10
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/WHEEL +0 -0
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/entry_points.txt +0 -0
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/licenses/LICENSE +0 -0
- {asktable_advisor-1.0.1.dist-info → asktable_advisor-1.0.3.dist-info}/top_level.txt +0 -0
asktable_advisor/__main__.py
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
"""Command-line interface for AskTable Advisor."""
|
|
2
2
|
|
|
3
|
-
import sys
|
|
4
3
|
import logging
|
|
5
|
-
|
|
4
|
+
import sys
|
|
6
5
|
|
|
7
6
|
from rich.console import Console
|
|
8
|
-
from rich.panel import Panel
|
|
9
7
|
from rich.markdown import Markdown
|
|
8
|
+
from rich.panel import Panel
|
|
10
9
|
from rich.prompt import Prompt
|
|
11
10
|
|
|
12
|
-
from .config import AdvisorSettings, get_settings
|
|
13
11
|
from .agent.advisor import AdvisorAgent
|
|
12
|
+
from .config import get_settings
|
|
14
13
|
|
|
15
14
|
# Setup console
|
|
16
15
|
console = Console()
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
|
|
18
|
+
def setup_logging(log_level: str = "WARNING") -> None:
|
|
19
|
+
"""
|
|
20
|
+
Setup logging configuration.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
|
|
24
|
+
"""
|
|
25
|
+
# Convert string to logging level
|
|
26
|
+
numeric_level = getattr(logging, log_level.upper(), logging.WARNING)
|
|
27
|
+
|
|
28
|
+
logging.basicConfig(
|
|
29
|
+
level=numeric_level,
|
|
30
|
+
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s",
|
|
31
|
+
handlers=[
|
|
32
|
+
logging.FileHandler("asktable_advisor.log"),
|
|
33
|
+
logging.StreamHandler(sys.stderr),
|
|
34
|
+
],
|
|
35
|
+
force=True, # Override any existing configuration
|
|
36
|
+
)
|
|
27
37
|
|
|
28
38
|
|
|
29
39
|
def print_welcome() -> None:
|
|
@@ -128,6 +138,9 @@ def main() -> None:
|
|
|
128
138
|
# Load settings
|
|
129
139
|
settings = get_settings()
|
|
130
140
|
|
|
141
|
+
# Setup logging with configured level
|
|
142
|
+
setup_logging(settings.log_level)
|
|
143
|
+
|
|
131
144
|
# Print welcome
|
|
132
145
|
print_welcome()
|
|
133
146
|
|
asktable_advisor/__version__.py
CHANGED
|
@@ -36,8 +36,9 @@ class LLMClient:
|
|
|
36
36
|
|
|
37
37
|
# Initialize Anthropic client with Aliyun Bailian endpoint
|
|
38
38
|
self.client = Anthropic(
|
|
39
|
-
api_key=settings.
|
|
40
|
-
base_url=settings.
|
|
39
|
+
api_key=settings.advisor_anthropic_api_key,
|
|
40
|
+
base_url=settings.advisor_anthropic_base_url,
|
|
41
|
+
timeout=60.0, # Set 60 second timeout to avoid streaming requirement
|
|
41
42
|
)
|
|
42
43
|
|
|
43
44
|
self.model = settings.agent_model
|
|
@@ -46,7 +47,7 @@ class LLMClient:
|
|
|
46
47
|
|
|
47
48
|
logger.info(
|
|
48
49
|
f"LLM client initialized: model={self.model}, "
|
|
49
|
-
f"base_url={settings.
|
|
50
|
+
f"base_url={settings.advisor_anthropic_base_url}"
|
|
50
51
|
)
|
|
51
52
|
|
|
52
53
|
def create_message(
|
|
@@ -89,7 +90,8 @@ class LLMClient:
|
|
|
89
90
|
# TODO: Implement streaming response handling
|
|
90
91
|
logger.warning("Streaming not yet implemented, falling back to non-streaming")
|
|
91
92
|
|
|
92
|
-
|
|
93
|
+
# Set explicit timeout to avoid streaming requirement for large max_tokens
|
|
94
|
+
response = self.client.messages.create(**params, timeout=60.0)
|
|
93
95
|
|
|
94
96
|
logger.debug(
|
|
95
97
|
f"Received response: "
|
asktable_advisor/config.py
CHANGED
|
@@ -22,11 +22,11 @@ class AdvisorSettings(BaseSettings):
|
|
|
22
22
|
)
|
|
23
23
|
|
|
24
24
|
# LLM API Configuration (Aliyun Bailian - qwen3-max)
|
|
25
|
-
|
|
25
|
+
advisor_anthropic_base_url: str = Field(
|
|
26
26
|
default="https://dashscope.aliyuncs.com/apps/anthropic",
|
|
27
27
|
description="Anthropic-compatible API base URL (Aliyun Bailian)",
|
|
28
28
|
)
|
|
29
|
-
|
|
29
|
+
advisor_anthropic_api_key: str = Field(
|
|
30
30
|
...,
|
|
31
31
|
description="DashScope API key for Aliyun Bailian",
|
|
32
32
|
)
|
|
@@ -45,6 +45,12 @@ class AdvisorSettings(BaseSettings):
|
|
|
45
45
|
description="Maximum tokens for LLM responses",
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
+
# Logging Configuration
|
|
49
|
+
log_level: str = Field(
|
|
50
|
+
default="WARNING",
|
|
51
|
+
description="Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)",
|
|
52
|
+
)
|
|
53
|
+
|
|
48
54
|
# MySQL Database Configuration
|
|
49
55
|
mysql_host: str = Field(..., description="MySQL host")
|
|
50
56
|
mysql_port: int = Field(default=3306, description="MySQL port")
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
asktable_advisor/__init__.py,sha256=21OEclDkj7fT8swRC2d7JZAqB2cB52lt-LLJno5eVFY,442
|
|
2
|
-
asktable_advisor/__main__.py,sha256=
|
|
3
|
-
asktable_advisor/__version__.py,sha256=
|
|
4
|
-
asktable_advisor/config.py,sha256=
|
|
2
|
+
asktable_advisor/__main__.py,sha256=7hZeayoibCKUeGIZSgU8Pg9N-OejQJ35kq8A-yRBFT8,4637
|
|
3
|
+
asktable_advisor/__version__.py,sha256=GGOC7DDZK2TBiEaMeXqhGjpUQM4IMAHqHGzEXYJBIxA,136
|
|
4
|
+
asktable_advisor/config.py,sha256=l2vPCaUIPUeaJt-2NhlOFIUB9pVWOx7uD58qgAOO1Bk,2667
|
|
5
5
|
asktable_advisor/agent/__init__.py,sha256=QU-dutlZwnjeJ1EMtdjTLeia3SloykUAatiuHuEeHq4,147
|
|
6
6
|
asktable_advisor/agent/advisor.py,sha256=g6hJpGicTyaUauWWPI6bwGsz5tH_AeaDvL6IkcSER9E,11349
|
|
7
|
-
asktable_advisor/agent/llm_client.py,sha256=
|
|
7
|
+
asktable_advisor/agent/llm_client.py,sha256=f8nVteCXiXDF0TWlYVKEhpUXuvAskuK_qbc-ipLTZR4,5780
|
|
8
8
|
asktable_advisor/agent/prompts.py,sha256=eJSeRhivDKN3Qtpl_hedqJiFtsccLuFFfUcsVCzmtVA,5467
|
|
9
9
|
asktable_advisor/agent/tools.py,sha256=YJv1IZQ-OIrFP4FghxGNIL12uLZ-U-cKZxuKWZEZUEo,12875
|
|
10
10
|
asktable_advisor/asktable/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -18,9 +18,9 @@ asktable_advisor/database/manager.py,sha256=0dMh7s7Xs-9vpC92VgIpDJSIiu_YxJApvnmi
|
|
|
18
18
|
asktable_advisor/database/schema_generator.py,sha256=_K8FlJ3FMtATmxzYO-4Fogace5Zsvh2p8dcGBBNkjPw,4535
|
|
19
19
|
asktable_advisor/knowledge/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
20
|
asktable_advisor/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
21
|
-
asktable_advisor-1.0.
|
|
22
|
-
asktable_advisor-1.0.
|
|
23
|
-
asktable_advisor-1.0.
|
|
24
|
-
asktable_advisor-1.0.
|
|
25
|
-
asktable_advisor-1.0.
|
|
26
|
-
asktable_advisor-1.0.
|
|
21
|
+
asktable_advisor-1.0.3.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
|
22
|
+
asktable_advisor-1.0.3.dist-info/METADATA,sha256=g2d9-t-zESjGNW16g_Lkb2uR6pspjfjqL1LlRgjLSQQ,7443
|
|
23
|
+
asktable_advisor-1.0.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
24
|
+
asktable_advisor-1.0.3.dist-info/entry_points.txt,sha256=m4MJ7R-05wjqqPf-awcMj9JqtwgiK2Du8UV_l6VNh6k,68
|
|
25
|
+
asktable_advisor-1.0.3.dist-info/top_level.txt,sha256=cDBvLmuBSm43p7q7GEoZoIsB0q2al1NZbbDktRe42bQ,17
|
|
26
|
+
asktable_advisor-1.0.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|