LLM 胜利了!!!!!!
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2025-11-21 16:13:38 +08:00
parent 3e5c1941c8
commit 6f08c22b5b
8 changed files with 149 additions and 59 deletions

View File

@ -0,0 +1,3 @@
# 已废弃
坏枪用简单的 LLM + 提示词工程,完成了这 200 块的 `qwen3-coder-plus` 都搞不定的 nb 功能

View File

@ -9,7 +9,6 @@ import datetime
from typing import Optional
from .expression import TimeExpression
from .err import TokenUnhandledException, MultipleSpecificationException
def parse(text: str, now: Optional[datetime.datetime] = None) -> datetime.datetime:
@ -56,19 +55,4 @@ class Parser:
TokenUnhandledException: If the input cannot be parsed
"""
return TimeExpression.parse(text, self.now)
def digest_chinese_number(self, text: str) -> tuple[str, int]:
"""
Parse a Chinese number from the beginning of text and return the rest and the parsed number.
This matches the interface of the original digest_chinese_number method.
Args:
text: Text that may start with a Chinese number
Returns:
Tuple of (remaining_text, parsed_number)
"""
from .chinese_number import ChineseNumberParser
parser = ChineseNumberParser()
return parser.digest(text)

View File

@ -2,10 +2,9 @@
Abstract Syntax Tree (AST) nodes for the time expression parser.
"""
from abc import ABC, abstractmethod
from typing import Optional, List
from abc import ABC
from typing import Optional
from dataclasses import dataclass
import datetime
@dataclass
@ -69,4 +68,4 @@ class TimeExpressionNode(ASTNode):
time: Optional[TimeNode] = None
relative_date: Optional[RelativeDateNode] = None
relative_time: Optional[RelativeTimeNode] = None
weekday: Optional[WeekdayNode] = None
weekday: Optional[WeekdayNode] = None

View File

@ -10,7 +10,7 @@ from .ptime_ast import (
TimeExpressionNode, DateNode, TimeNode,
RelativeDateNode, RelativeTimeNode, WeekdayNode, NumberNode
)
from .err import TokenUnhandledException, MultipleSpecificationException
from .err import TokenUnhandledException
class SemanticAnalyzer:
@ -366,4 +366,4 @@ class SemanticAnalyzer:
smart_time = self.infer_smart_time(time.hour, time.minute, time.second, base_time=result)
result = smart_time
return result
return result