From 48db31f634bfe21f6b757f679943f1508c28791c Mon Sep 17 00:00:00 2001 From: liubiren Date: Mon, 18 May 2026 22:00:42 +0800 Subject: [PATCH] =?UTF-8?q?20260518=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utils/request.py | 38 ++++++++++++------- .../skills/requirements-analysis/SKILL.md | 2 +- 安全加密请求/main.py | 10 +++++ 3 files changed, 35 insertions(+), 15 deletions(-) create mode 100644 安全加密请求/main.py diff --git a/utils/request.py b/utils/request.py index 6446d86..aea5ab8 100644 --- a/utils/request.py +++ b/utils/request.py @@ -28,10 +28,10 @@ class Parameters(BaseModel): params: Optional[Dict[str, Any]] = Field(default=None, description="查询参数") headers: Optional[Dict[str, Any]] = Field(default=None, description="请求头") data: Optional[Union[str, bytes, Dict[str, Any]]] = Field( - default=None, description="数据参数" + default=None, description="data 数据" ) json_: Optional[Dict[str, Any]] = Field( - default=None, alias="json", description="JSON 参数" + default=None, alias="json", description="JSON 数据" ) files: Optional[ Dict[ @@ -44,22 +44,27 @@ class Parameters(BaseModel): ] ] = Field( default=None, - description="文件上传参数", + description="上传文件", + ) + encryption_strategy: Optional[Literal["rsa-aes-gcm"]] = Field( + default=None, description="加密策略,默认为不加密" + ) + stream: Optional[bool] = Field( + default=None, description="开启流式传输,默认为不开启" ) - stream: Optional[bool] = Field(default=None, description="开启流式传输") guid: Optional[str] = Field(default=None, description="缓存全局唯一标识") @model_validator(mode="after") def validate_data(self): - """校验:表单参数和JSON参数互斥""" + """校验:data 数据和JSON数据互斥""" if self.data and self.json_: - raise ValueError("表单参数和 JSON 参数不能同时使用") + raise ValueError("data 数据和 JSON 数据不能同时使用") return self @model_validator(mode="after") def validate_files(self): if self.files and self.stream: - raise ValueError("文件上传参数和开启流式传输不能同时使用") + raise ValueError("上传文件和开启流式传输不能同时使用") return self @@ -181,6 +186,7 @@ class Request: total: int = 3, backoff_factor: float = 0.5, timeout: int = 60, + encryption_strategy: Optional[Literal["rsa-aes-gcm"]] = None, cache_enabled: bool = False, cache_ttl: int = 360, ): @@ -189,6 +195,7 @@ class Request: :param total: 最大重试次数,默认 3 :param backoff_factor: 重试间隔退避因子,默认 0.5 :param timeout: 超时时间(单位为秒),默认为 60 + :param encryption_strategy: 加密策略,默认为不加密 :param cache_enabled: 使用缓存,默认 False :param cache_ttl: 缓存生存时间(单位为天),默认为 360 """ @@ -199,6 +206,9 @@ class Request: # 初始化超时时间 self.timeout = timeout + # 初始化加密策略 + self.encryption_strategy = encryption_strategy + # 实例化缓存 self.caches = Caches(cache_ttl=cache_ttl * 86400) if cache_enabled else None @@ -245,15 +255,15 @@ class Request: def get(self, **kwargs) -> Any: """ GET请求 - :param kwargs: 请求参数 + :param kwargs: 请求参数模型 :return: 响应内容 """ return self._request(method="GET", parameters=Parameters(**kwargs)) def put(self, **kwargs) -> Any: """ - GET请求 - :param kwargs: 请求参数 + PUT请求 + :param kwargs: 请求参数模型 :return: 响应内容 """ return self._request(method="PUT", parameters=Parameters(**kwargs)) @@ -261,10 +271,10 @@ class Request: def post(self, **kwargs) -> Any: """ POST请求 - :param kwargs: 请求参数 + :param kwargs: 请求参数模型 :return: 响应内容 """ - # 若表单参数和 JSON 参数同时为空则重构 JSON 参数 + # 若 data 数据和 JSON 数据同时为空则重构 JSON 数据 if not kwargs.get("data") and not kwargs.get("json"): kwargs["json"] = {} @@ -383,10 +393,10 @@ class Request: ) # 根据响应类型匹配响应内容解析方法并返回 match response_type: - # 若为JSON则反序列化 + # 若为 JSON 格式则反序列化 case "application/json" | "text/json": return response.json() - # 若为XML解析为Element对象 + # 若为 XML 格式则解析为 ElementTree 对象 case "application/xml" | "text/xml": return ElementTree.fromstring(content) # 若为影像件格式则返回影像件格式和响应内容 diff --git a/产品需求文档AI生成/skills/requirements-analysis/SKILL.md b/产品需求文档AI生成/skills/requirements-analysis/SKILL.md index 309ab48..77ca863 100644 --- a/产品需求文档AI生成/skills/requirements-analysis/SKILL.md +++ b/产品需求文档AI生成/skills/requirements-analysis/SKILL.md @@ -1,6 +1,6 @@ --- name: "requirements-analysis" -description: "资深需求分析师,擅长通过提问梳理业务需求,区分单/多项需求场景完成需求分析,支持史诗需求拆解、优先级排序、干系人梳理和验收标准制定,最终输出规范化的产品需求文档(PRD)。" +description: "资深需求分析师,擅长通过提问完成业务需求分析,支持史诗需求拆解、优先级排序、干系人梳理和验收标准制定,最终输出规范化的产品需求文档(PRD)。" --- # 资深需求分析师 diff --git a/安全加密请求/main.py b/安全加密请求/main.py new file mode 100644 index 0000000..cfc81bd --- /dev/null +++ b/安全加密请求/main.py @@ -0,0 +1,10 @@ +# -*- coding: utf-8 -*- +""" +主运行模块 +""" + +# 列举导入模块 +import uvicorn + +def request(): + pass \ No newline at end of file