feat: release v1.0.2 LeKiwi 语言控制与网站嵌入
web-platform-ci / Standalone decision service (no cloud credentials) (push) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
lekiwi-compatibility / cpu-compatibility (push) Has been cancelled
web-platform-ci / Standalone decision service (no cloud credentials) (push) Has been cancelled
web-platform-ci / TypeScript, lint, unit, build (push) Has been cancelled
web-platform-ci / Playwright E2E (push) Has been cancelled
lekiwi-compatibility / cpu-compatibility (push) Has been cancelled
集成服务器托管模型、自然语言移动与有界抓放、内置 LeKiwi URL 导入和双摄像头;同步部署契约与指定域名 iframe 白名单,保留原有物理安全、会话及调用预算防护。 更新 npm 包及锁文件版本、CHANGELOG 与发布文档。提交前 typecheck、120 项定向前端测试和 44 项后端测试通过(3 项可选跳过);真实 v2 云模型抓放仍待单独验收,不包含运行密钥或构建产物。
This commit is contained in:
@@ -14,7 +14,11 @@ def main():
|
||||
parser = argparse.ArgumentParser(description="LeKiwi 本机模型服务(仅回环地址)")
|
||||
parser.add_argument("--port", type=int, default=8768)
|
||||
parser.add_argument("--state-dir", type=Path)
|
||||
parser.add_argument("--website-origin", help="显式网站同源模式,不读取任何共享凭据")
|
||||
parser.add_argument("--website-origin", help="显式网站同源模式")
|
||||
parser.add_argument("--website-key-file", type=Path, help="显式服务器密钥文件,仅两项固定角色")
|
||||
parser.add_argument(
|
||||
"--website-budget-file", type=Path, help="共享调用限额 SQLite 文件,重启不重置"
|
||||
)
|
||||
parser.add_argument("--website-dev", action="store_true", help="仅回环 HTTP 开发模式")
|
||||
parser.add_argument("--bind", default="127.0.0.1", choices=["127.0.0.1", "0.0.0.0"])
|
||||
parser.add_argument("--trusted-proxy", action="append", default=[])
|
||||
@@ -43,18 +47,37 @@ def main():
|
||||
parser.error("网站模式不接受共享凭据或额外 Origin")
|
||||
if min(args.max_sessions, args.max_inference, args.max_codex) < 1:
|
||||
parser.error("网站容量必须大于零")
|
||||
defaults = budget = None
|
||||
if bool(args.website_key_file) != bool(args.website_budget_file):
|
||||
parser.error("服务器密钥必须同时配置持久化调用限额")
|
||||
if args.website_key_file:
|
||||
from .hosted_budget import HostedBudget
|
||||
|
||||
defaults = {
|
||||
"llm": deepseek_llm(args.website_key_file),
|
||||
"jev": openrouter_jev(args.website_key_file),
|
||||
}
|
||||
budget = HostedBudget(args.website_budget_file)
|
||||
app = create_website_app(
|
||||
args.website_origin,
|
||||
args.state_dir,
|
||||
development=args.website_dev,
|
||||
trusted_proxies=args.trusted_proxy,
|
||||
defaults=defaults,
|
||||
budget=budget,
|
||||
limits=Limits(
|
||||
sessions=args.max_sessions, inference=args.max_inference, codex=args.max_codex
|
||||
),
|
||||
)
|
||||
web.run_app(app, host=args.bind, port=args.port, access_log=None, handler_cancellation=True)
|
||||
return
|
||||
if args.bind != "127.0.0.1" or args.website_dev or args.trusted_proxy:
|
||||
if (
|
||||
args.bind != "127.0.0.1"
|
||||
or args.website_dev
|
||||
or args.trusted_proxy
|
||||
or args.website_key_file
|
||||
or args.website_budget_file
|
||||
):
|
||||
parser.error("本机模式必须仅回环监听")
|
||||
origins = {
|
||||
"http://localhost:5173",
|
||||
|
||||
Reference in New Issue
Block a user