uapi-sdk-python 0.1.5__tar.gz → 0.1.10__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uapi-sdk-python
3
- Version: 0.1.5
3
+ Version: 0.1.10
4
4
  Summary: Idiomatic UAPI SDK for Python
5
5
  Author-email: UAPI <dev@uapis.cn>
6
6
  Requires-Python: >=3.9
@@ -14,7 +14,7 @@ Requires-Dist: isort; extra == "dev"
14
14
 
15
15
  # uapi-sdk-python
16
16
 
17
- ![Banner](https://raw.githubusercontent.com/uapis/uapi-sdk-python/main/banner.png)
17
+ ![Banner](https://raw.githubusercontent.com/AxT-Team/uapi-sdk-python/main/banner.png)
18
18
 
19
19
  [![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
20
20
  [![Docs](https://img.shields.io/badge/Docs-uapis.cn-2EAE5D?style=flat-square)](https://uapis.cn/)
@@ -1,6 +1,6 @@
1
1
  # uapi-sdk-python
2
2
 
3
- ![Banner](https://raw.githubusercontent.com/uapis/uapi-sdk-python/main/banner.png)
3
+ ![Banner](https://raw.githubusercontent.com/AxT-Team/uapi-sdk-python/main/banner.png)
4
4
 
5
5
  [![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
6
6
  [![Docs](https://img.shields.io/badge/Docs-uapis.cn-2EAE5D?style=flat-square)](https://uapis.cn/)
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "uapi-sdk-python"
7
- version = "0.1.5"
7
+ version = "0.1.10"
8
8
  description = "Idiomatic UAPI SDK for Python"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.9"
@@ -27,5 +27,3 @@ strict = true
27
27
 
28
28
  [tool.isort]
29
29
  profile = "black"
30
-
31
-
@@ -443,7 +443,7 @@ class _ImageApi:
443
443
  return self._http.request("GET", path, params=params, json=body if body else None)
444
444
 
445
445
  def get_image_motou(self, **kwargs):
446
- r"""摸头 GIF
446
+ r"""生成摸摸头GIF (QQ号)
447
447
  想在线rua一下好友的头像吗?这个趣味接口可以满足你。
448
448
 
449
449
  ## 功能概述
@@ -471,7 +471,7 @@ class _ImageApi:
471
471
  无论是网址、文本还是联系方式,通通可以变成一个二维码!这是一个非常灵活的二维码生成工具。
472
472
 
473
473
  ## 功能概述
474
- 你提供一段文本内容,我们为你生成对应的二维码图片。你可以自定义尺寸,并选择不同的返回格式以适应不同场景。
474
+ 你提供一段文本内容,我们为你生成对应的二维码图片。你可以自定义尺寸、前景色、背景色,还支持透明背景,并选择不同的返回格式以适应不同场景。
475
475
 
476
476
  ## 使用须知
477
477
 
@@ -481,6 +481,12 @@ class _ImageApi:
481
481
  > - **`image`** (默认): 直接返回 `image/png` 格式的图片二进制数据,适合在 `<img>` 标签中直接使用。
482
482
  > - **`json`**: 返回一个包含 Base64 Data URI 的 JSON 对象,适合需要在前端直接嵌入CSS或HTML的场景。
483
483
  > - **`json_url`**: 返回一个包含图片临时URL的JSON对象,适合需要图片链接的场景。
484
+
485
+ > [!TIP]
486
+ > **颜色参数说明**
487
+ > - 颜色参数使用十六进制格式(如 `#FF0000`)
488
+ > - URL 中需要对 `#` 进行编码,即 `%23`(例如:`fgcolor=%23FF0000`)
489
+ > - 当 `transparent=true` 时,`bgcolor` 参数会被忽略
484
490
  """
485
491
  params = {}
486
492
  body = {}
@@ -494,6 +500,15 @@ class _ImageApi:
494
500
  if "query" == "query" and "format" in kwargs:
495
501
  params["format"] = kwargs["format"]
496
502
 
503
+ if "query" == "query" and "transparent" in kwargs:
504
+ params["transparent"] = kwargs["transparent"]
505
+
506
+ if "query" == "query" and "fgcolor" in kwargs:
507
+ params["fgcolor"] = kwargs["fgcolor"]
508
+
509
+ if "query" == "query" and "bgcolor" in kwargs:
510
+ params["bgcolor"] = kwargs["bgcolor"]
511
+
497
512
  path = "/api/v1/image/qrcode"
498
513
 
499
514
  return self._http.request("GET", path, params=params, json=body if body else None)
@@ -589,7 +604,7 @@ class _ImageApi:
589
604
  return self._http.request("POST", path, params=params, json=body if body else None)
590
605
 
591
606
  def post_image_motou(self, **kwargs):
592
- r"""摸头 GIF (上传)
607
+ r"""生成摸摸头GIF
593
608
  除了使用QQ头像,你还可以通过上传自己的图片或提供图片URL来制作独一无二的摸摸头GIF。
594
609
 
595
610
  ## 功能概述
@@ -619,13 +634,50 @@ class _ImageApi:
619
634
 
620
635
  return self._http.request("POST", path, params=params, json=body if body else None)
621
636
 
637
+ def post_image_nsfw(self, **kwargs):
638
+ r"""图片敏感检测
639
+ 这是一个图片内容审核接口,自动识别图片中的违规内容并返回处理建议。
640
+
641
+ > [!VIP]
642
+ > 此接口限时免费开放,无需企业认证即可使用。
643
+
644
+ ## 功能概述
645
+ 上传图片文件或提供图片URL,接口会自动分析图片内容,返回是否违规、风险等级和处理建议。适合对接到用户上传流程中,实现自动化内容审核。
646
+
647
+ ## 返回字段说明
648
+ - **is_nsfw**: 是否判定为违规内容,`true` 表示违规,`false` 表示正常
649
+ - **nsfw_score**: 违规内容置信度,0-1 之间,越高表示越可能违规
650
+ - **normal_score**: 正常内容置信度,0-1 之间,与 nsfw_score 互补
651
+ - **suggestion**: 处理建议
652
+ - `pass`: 内容正常,可以直接放行
653
+ - `review`: 存在风险,建议转人工复核
654
+ - `block`: 高风险内容,建议直接拦截
655
+ - **risk_level**: 风险等级
656
+ - `low`: 低风险
657
+ - `medium`: 中风险
658
+ - `high`: 高风险
659
+ - **label**: 内容标签,`nsfw` 或 `normal`
660
+ - **confidence**: 模型对当前判断的整体置信度
661
+ - **inference_time_ms**: 模型推理耗时,单位毫秒
662
+ """
663
+ params = {}
664
+ body = {}
665
+
666
+
667
+ if "file" in kwargs:
668
+ body["file"] = kwargs["file"]
669
+
670
+ if "url" in kwargs:
671
+ body["url"] = kwargs["url"]
672
+
673
+ path = "/api/v1/image/nsfw"
674
+
675
+ return self._http.request("POST", path, params=params, json=body if body else None)
676
+
622
677
  def post_image_speechless(self, **kwargs):
623
678
  r"""生成你们怎么不说话了表情包
624
679
  你们怎么不说话了?是不是都在偷偷玩Uapi,求求你们不要玩Uapi了
625
680
 
626
- ## 效果展示
627
- ![示例](https://uapis.cn/static/uploads/33580466897f1e5815296f235b582815.png)
628
-
629
681
  ## 使用须知
630
682
  - **响应格式**:接口成功时直接返回 `image/png` 格式的二进制数据。
631
683
  - **文字内容**:至少需要提供 `top_text`(上方文字)或 `bottom_text`(下方文字)之一。
@@ -715,6 +767,91 @@ class _MiscApi:
715
767
 
716
768
  return self._http.request("GET", path, params=params, json=body if body else None)
717
769
 
770
+ def get_misc_district(self, **kwargs):
771
+ r"""Adcode 国内外行政区域查询
772
+ 一个接口,覆盖全球 243 个国家、中国省/市/区/街道四级行政区划,支持关键词搜索、行政编码查询、坐标反查三种查询模式(必须至少传入一种查询参数)。
773
+
774
+ ## 功能概述
775
+ 根据用户输入的搜索条件快速查找行政区域信息。例如:中国 > 山东省 > 济南市 > 历下区 > 舜华路街道。
776
+
777
+ 无需注册、无需密钥,直接调用即可获取结构化的行政区域数据。支持三种查询方式:
778
+ - 传 `adcode`,按行政编码精确查询,同时返回下级区划列表
779
+ - 传 `lat` + `lng`,坐标反查附近地点
780
+ - 传 `keywords`,按关键词搜索,支持中英文
781
+
782
+ ## 中国与国际数据差异
783
+ 中国数据包含 `adcode`、`citycode` 等字段,支持省/市/区/街道四级逐级查询;国际城市数据不含这些字段,但额外提供 `population`(人口)和 `timezone`(时区)。
784
+
785
+ > [!NOTE]
786
+ > 部分城市(如东莞、文昌)没有区县层级,市级下方直接显示街道。街道级别的 `adcode` 返回的是所属区县的 `adcode`。
787
+ """
788
+ params = {}
789
+ body = {}
790
+
791
+ if "query" == "query" and "keywords" in kwargs:
792
+ params["keywords"] = kwargs["keywords"]
793
+
794
+ if "query" == "query" and "adcode" in kwargs:
795
+ params["adcode"] = kwargs["adcode"]
796
+
797
+ if "query" == "query" and "lat" in kwargs:
798
+ params["lat"] = kwargs["lat"]
799
+
800
+ if "query" == "query" and "lng" in kwargs:
801
+ params["lng"] = kwargs["lng"]
802
+
803
+ if "query" == "query" and "level" in kwargs:
804
+ params["level"] = kwargs["level"]
805
+
806
+ if "query" == "query" and "country" in kwargs:
807
+ params["country"] = kwargs["country"]
808
+
809
+ if "query" == "query" and "limit" in kwargs:
810
+ params["limit"] = kwargs["limit"]
811
+
812
+ path = "/api/v1/misc/district"
813
+
814
+ return self._http.request("GET", path, params=params, json=body if body else None)
815
+
816
+ def get_misc_holiday_calendar(self, **kwargs):
817
+ r"""查询节假日与万年历
818
+ 查询指定日期、月份或年份的万年历与节假日信息。
819
+
820
+ ## 功能概述
821
+ 这个接口支持三种查询方式:按天(`date`)、按月(`month`)和按年(`year`)。调用时三者选一个传入即可。
822
+
823
+ 如果你只关心某一类事件,可以通过 `holiday_type` 进行筛选,例如只看法定休假/调休、公历节日、农历节日或节气。
824
+
825
+ 在 `date` 模式下,传 `include_nearby=true` 可以额外返回该日期前后最近的节日;返回数量由 `nearby_limit` 控制,默认 7,最大 30。
826
+ """
827
+ params = {}
828
+ body = {}
829
+
830
+ if "query" == "query" and "date" in kwargs:
831
+ params["date"] = kwargs["date"]
832
+
833
+ if "query" == "query" and "month" in kwargs:
834
+ params["month"] = kwargs["month"]
835
+
836
+ if "query" == "query" and "year" in kwargs:
837
+ params["year"] = kwargs["year"]
838
+
839
+ if "query" == "query" and "timezone" in kwargs:
840
+ params["timezone"] = kwargs["timezone"]
841
+
842
+ if "query" == "query" and "holiday_type" in kwargs:
843
+ params["holiday_type"] = kwargs["holiday_type"]
844
+
845
+ if "query" == "query" and "include_nearby" in kwargs:
846
+ params["include_nearby"] = kwargs["include_nearby"]
847
+
848
+ if "query" == "query" and "nearby_limit" in kwargs:
849
+ params["nearby_limit"] = kwargs["nearby_limit"]
850
+
851
+ path = "/api/v1/misc/holiday-calendar"
852
+
853
+ return self._http.request("GET", path, params=params, json=body if body else None)
854
+
718
855
  def get_misc_hotboard(self, **kwargs):
719
856
  r"""查询热榜
720
857
  想快速跟上网络热点?这个接口让你一网打尽各大主流平台的实时热榜/热搜!
@@ -722,15 +859,30 @@ class _MiscApi:
722
859
  ## 功能概述
723
860
  你只需要指定一个平台类型,就能获取到该平台当前的热榜数据列表。每个热榜条目都包含标题、热度值和原始链接。非常适合用于制作信息聚合类应用或看板。
724
861
 
862
+ ## 三种使用模式
863
+
864
+ ### 默认模式
865
+ 只传 `type` 参数,返回该平台当前的实时热榜。
866
+
867
+ ### 时光机模式
868
+ 传 `type` + `time` 参数,返回最接近指定时间的热榜快照。如果不可用或无数据,会返回空。
869
+
870
+ ### 搜索模式
871
+ 传 `type` + `keyword` + `time_start` + `time_end` 参数,在指定时间范围内搜索包含关键词的热榜条目。可选传 `limit` 限制返回数量。
872
+
873
+ ### 数据源列表
874
+ 传 `sources=true`,返回所有支持历史数据的平台列表。
875
+
725
876
  ## 可选值
726
877
  `type` 参数接受多种不同的值,每种值对应一个不同的热榜来源。以下是目前支持的所有值:
727
878
 
728
879
  | 分类 | 支持的 type 值 |
729
880
  |------------|-----------------------------------------------------------------------------------------------------------------------------------|
730
- | 视频/社区 | bilibili(哔哩哔哩弹幕网), acfun(A站弹幕视频网站), weibo(新浪微博热搜), zhihu(知乎热榜), zhihu-daily(知乎日报热榜), douyin(抖音热榜), kuaishou(快手热榜), douban-movie(豆瓣电影榜单), douban-group(豆瓣小组话题), tieba(百度贴吧热帖), hupu(虎扑热帖), miyoushe(米游社话题榜), ngabbs(NGA游戏论坛热帖), v2ex(V2EX技术社区热帖), 52pojie(吾爱破解热帖), hostloc(全球主机交流论坛), coolapk(酷安热榜) |
881
+ | 视频/社区 | bilibili(哔哩哔哩弹幕网), acfun(A站弹幕视频网站), weibo(新浪微博热搜), zhihu(知乎热榜), zhihu-daily(知乎日报热榜), douyin(抖音热榜), kuaishou(快手热榜), douban-movie(豆瓣电影榜单), douban-group(豆瓣小组话题), tieba(百度贴吧热帖), hupu(虎扑热帖), ngabbs(NGA游戏论坛热帖), v2ex(V2EX技术社区热帖), 52pojie(吾爱破解热帖), hostloc(全球主机交流论坛), coolapk(酷安热榜) |
731
882
  | 新闻/资讯 | baidu(百度热搜), thepaper(澎湃新闻热榜), toutiao(今日头条热榜), qq-news(腾讯新闻热榜), sina(新浪热搜), sina-news(新浪新闻热榜), netease-news(网易新闻热榜), huxiu(虎嗅网热榜), ifanr(爱范儿热榜) |
732
883
  | 技术/IT | sspai(少数派热榜), ithome(IT之家热榜), ithome-xijiayi(IT之家·喜加一栏目), juejin(掘金社区热榜), jianshu(简书热榜), guokr(果壳热榜), 36kr(36氪热榜), 51cto(51CTO热榜), csdn(CSDN博客热榜), nodeseek(NodeSeek 技术社区), hellogithub(HelloGitHub 项目推荐) |
733
884
  | 游戏 | lol(英雄联盟热帖), genshin(原神热榜), honkai(崩坏3热榜), starrail(星穹铁道热榜) |
885
+ | 音乐 | netease-music(网易云音乐热歌榜), qq-music(QQ音乐热歌榜) |
734
886
  | 其他 | weread(微信读书热门书籍), weatheralarm(天气预警信息), earthquake(地震速报), history(历史上的今天) |
735
887
 
736
888
  """
@@ -740,10 +892,53 @@ class _MiscApi:
740
892
  if "query" == "query" and "type" in kwargs:
741
893
  params["type"] = kwargs["type"]
742
894
 
895
+ if "query" == "query" and "time" in kwargs:
896
+ params["time"] = kwargs["time"]
897
+
898
+ if "query" == "query" and "keyword" in kwargs:
899
+ params["keyword"] = kwargs["keyword"]
900
+
901
+ if "query" == "query" and "time_start" in kwargs:
902
+ params["time_start"] = kwargs["time_start"]
903
+
904
+ if "query" == "query" and "time_end" in kwargs:
905
+ params["time_end"] = kwargs["time_end"]
906
+
907
+ if "query" == "query" and "limit" in kwargs:
908
+ params["limit"] = kwargs["limit"]
909
+
910
+ if "query" == "query" and "sources" in kwargs:
911
+ params["sources"] = kwargs["sources"]
912
+
743
913
  path = "/api/v1/misc/hotboard"
744
914
 
745
915
  return self._http.request("GET", path, params=params, json=body if body else None)
746
916
 
917
+ def get_misc_lunartime(self, **kwargs):
918
+ r"""查询农历时间
919
+ 需要在指定时区下查看某个时间点的农历信息?这个接口可以直接返回完整结果。
920
+
921
+ ## 功能概述
922
+ 支持传入 Unix 时间戳(秒或毫秒)和 IANA 时区名,返回公历时间、星期、农历年月日、干支、生肖、节气与节日信息。不传 `ts` 时默认使用当前时间,不传 `timezone` 时默认 `Asia/Shanghai`。
923
+
924
+ ## 时区说明
925
+ - 支持标准 IANA 时区,例如 `Asia/Shanghai`、`Asia/Tokyo`
926
+ - 也支持别名:`Shanghai`、`Beijing`
927
+ - 时区非法时返回 400 并提示 `invalid timezone: xxx`
928
+ """
929
+ params = {}
930
+ body = {}
931
+
932
+ if "query" == "query" and "ts" in kwargs:
933
+ params["ts"] = kwargs["ts"]
934
+
935
+ if "query" == "query" and "timezone" in kwargs:
936
+ params["timezone"] = kwargs["timezone"]
937
+
938
+ path = "/api/v1/misc/lunartime"
939
+
940
+ return self._http.request("GET", path, params=params, json=body if body else None)
941
+
747
942
  def get_misc_phoneinfo(self, **kwargs):
748
943
  r"""查询手机归属地
749
944
  想知道一个手机号码来自哪里?是移动、联通还是电信?这个接口可以告诉你答案。
@@ -823,7 +1018,7 @@ graph TD
823
1018
  > [!WARNING]
824
1019
  > **接口已过时**:这个接口已被新的 `/convert/unixtime` 取代。新接口功能更强大,支持双向转换。我们建议你迁移到新接口。
825
1020
 
826
- [👉 前往新版接口文档](/docs/api-reference/get-convert-unixtime)
1021
+ [➡️ 前往新版接口文档](/docs/api-reference/get-convert-unixtime)
827
1022
  """
828
1023
  params = {}
829
1024
  body = {}
@@ -895,6 +1090,7 @@ graph TD
895
1090
  ## 使用须知
896
1091
  - **自动识别**:不知道是哪家快递?系统会根据单号规则自动识别快递公司(推荐使用)
897
1092
  - **手动指定**:如果已知快递公司,可以传递 `carrier_code` 参数,查询速度会更快
1093
+ - **手机尾号验证**:部分快递公司需要验证收件人手机尾号才能查询详细物流,如果返回「暂无物流信息」,建议尝试传入 `phone` 参数
898
1094
  - **查询时效**:物流信息实时查询,响应时间通常在1-2秒内
899
1095
  """
900
1096
  params = {}
@@ -906,23 +1102,38 @@ graph TD
906
1102
  if "query" == "query" and "carrier_code" in kwargs:
907
1103
  params["carrier_code"] = kwargs["carrier_code"]
908
1104
 
1105
+ if "query" == "query" and "phone" in kwargs:
1106
+ params["phone"] = kwargs["phone"]
1107
+
909
1108
  path = "/api/v1/misc/tracking/query"
910
1109
 
911
1110
  return self._http.request("GET", path, params=params, json=body if body else None)
912
1111
 
913
1112
  def get_misc_weather(self, **kwargs):
914
1113
  r"""查询天气
915
- 出门前,查一下天气总是个好习惯。这个接口为你提供精准、实时的天气数据。
1114
+ 出门前,查一下天气总是个好习惯。这个接口为你提供精准、实时的天气数据,支持国内和国际城市。
916
1115
 
917
1116
  ## 功能概述
918
- 你可以通过城市名称或6位数字的Adcode来查询指定地区的实时天气状况,包括天气现象、温度、湿度、风向和风力等。
1117
+ 这个接口支持三种查询方式:
1118
+ - 可以传 `adcode`,按行政区编码查询(优先级最高)
1119
+ - 可以传 `city`,按城市名称查询,支持中文(`北京`)和英文(`Tokyo`)
1120
+ - 两个都不传时,按客户端 IP 自动定位查询
919
1121
 
920
- ## 使用须知
921
- - **参数优先级**:当你同时提供了 `city` (城市名) 和 `adcode` (城市编码) 两个参数时,系统会 **优先使用 `adcode`** 进行查询,因为它更精确。
922
- - **查询范围**:为了保证查询的准确性,我们的服务仅支持标准的“省”、“市”、“区/县”级别的行政区划名称查询,不保证能查询到乡镇或具体地点。
1122
+ 支持 `lang` 参数,可选 `zh`(默认)和 `en`,城市名翻译覆盖 7000+ 城市。
923
1123
 
924
- ## 错误处理指南
925
- - **410 Gone**: 这个特殊的错误码意味着你查询的地区无效或不受我们支持。比如你输入了“火星”,或者某个我们无法识别的村庄名称。这个状态码告诉你,这个“资源”是永久性地不可用了。
1124
+ ## 可选功能模块
1125
+ - `extended=true`:扩展气象字段(体感温度、能见度、气压、紫外线、空气质量及污染物分项数据)
1126
+ - `forecast=true`:多天预报(最多7天,含日出日落、风速等详细数据)
1127
+ - `hourly=true`:逐小时预报(24小时)
1128
+ - `minutely=true`:分钟级降水预报(仅国内城市)
1129
+ - `indices=true`:18项生活指数(穿衣、紫外线、洗车、运动、花粉等)
1130
+
1131
+ ## 天气字段说明
1132
+ `weather` 是天气现象文本,不是固定枚举。
1133
+
1134
+ 常见值包括:晴、多云、阴、小雨、中雨、大雨、雷阵雨、小雪、中雪、大雪、雨夹雪、雾、霾、沙尘。
1135
+
1136
+ 如果你的业务需要稳定分类,建议结合 `weather_code` 做自己的映射归类。
926
1137
  """
927
1138
  params = {}
928
1139
  body = {}
@@ -936,11 +1147,20 @@ graph TD
936
1147
  if "query" == "query" and "extended" in kwargs:
937
1148
  params["extended"] = kwargs["extended"]
938
1149
 
1150
+ if "query" == "query" and "forecast" in kwargs:
1151
+ params["forecast"] = kwargs["forecast"]
1152
+
1153
+ if "query" == "query" and "hourly" in kwargs:
1154
+ params["hourly"] = kwargs["hourly"]
1155
+
1156
+ if "query" == "query" and "minutely" in kwargs:
1157
+ params["minutely"] = kwargs["minutely"]
1158
+
939
1159
  if "query" == "query" and "indices" in kwargs:
940
1160
  params["indices"] = kwargs["indices"]
941
1161
 
942
- if "query" == "query" and "forecast" in kwargs:
943
- params["forecast"] = kwargs["forecast"]
1162
+ if "query" == "query" and "lang" in kwargs:
1163
+ params["lang"] = kwargs["lang"]
944
1164
 
945
1165
  path = "/api/v1/misc/weather"
946
1166
 
@@ -1042,10 +1262,10 @@ class _NetworkApi:
1042
1262
 
1043
1263
  def get_network_ipinfo(self, **kwargs):
1044
1264
  r"""查询 IP
1045
- 想知道一个IP地址或域名来自地球的哪个角落?这个接口可以帮你定位它。你可以选择使用默认的GeoIP数据库,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1265
+ 想知道一个IP地址或域名来自地球的哪个角落?这个接口可以帮你定位它。你可以使用默认数据源,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1046
1266
 
1047
1267
  ## 功能概述
1048
- 提供一个公网IPv4、IPv6地址或域名,我们会利用GeoIP数据库查询并返回它的地理位置(国家、省份、城市)、经纬度、以及所属的运营商(ISP)和自治系统(ASN)信息。这在网络安全分析、访问来源统计等领域非常有用。
1268
+ 提供一个公网IPv4、IPv6地址或域名,我们会查询并返回它的地理位置(国家、省份、城市)、经纬度、以及所属的运营商(ISP)和自治系统(ASN)信息。这在网络安全分析、访问来源统计等领域非常有用。
1049
1269
 
1050
1270
  当使用 `source=commercial` 参数时,接口将调用高性能商业API,提供更精确的市、区、运营商、时区、海拔等信息。请注意,商业查询的响应时间可能会稍长。
1051
1271
  """
@@ -1064,7 +1284,7 @@ class _NetworkApi:
1064
1284
 
1065
1285
  def get_network_myip(self, **kwargs):
1066
1286
  r"""查询我的 IP
1067
- 想知道你自己的出口公网IP是多少吗?这个接口就是你的“网络身份证”。你可以选择使用默认的GeoIP数据库,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1287
+ 想知道你自己的出口公网IP是多少吗?这个接口就是你的“网络身份证”。你可以使用默认数据源,也可以指定 `source=commercial` 参数来查询更详细的商业级IP归属信息。
1068
1288
 
1069
1289
  ## 功能概述
1070
1290
  调用此接口,它会返回你(即发起请求的客户端)的公网IP地址,并附带与 `/network/ipinfo` 接口相同的地理位置和网络归属信息。非常适合用于在网页上向用户展示他们自己的IP和地理位置。
@@ -1141,9 +1361,6 @@ class _NetworkApi:
1141
1361
 
1142
1362
  ## 功能概述
1143
1363
  提供一个URL,我们会向它发起一个请求,并返回其HTTP响应状态码。这是一种简单而有效的服务可用性监控方法。
1144
-
1145
- > [!TIP]
1146
- > **性能优化**:为了提高效率并减少对目标服务器的负载,我们实际发送的是 `HEAD` 请求,而不是 `GET` 请求。`HEAD` 请求只会获取响应头,而不会下载整个页面内容,因此速度更快。
1147
1364
  """
1148
1365
  params = {}
1149
1366
  body = {}
@@ -1266,30 +1483,28 @@ class _RandomApi:
1266
1483
  > 如果你需要更精确地控制图片类型,请使用 `/image/random/{category}/{type}` 接口。
1267
1484
 
1268
1485
  ### 支持的主类别与子类别
1269
- - **UapiPro服务器图片**
1486
+ - **acg**(二次元动漫)
1487
+ - pc
1488
+ - mb
1489
+ - **外部图床精选/混合动漫**
1490
+ - **landscape**: 风景图。
1491
+ - **anime**: 混合了UapiPro服务器的acg和外部图床的general_anime分类下的图片。
1492
+ - **pc_wallpaper**: 电脑壁纸。
1493
+ - **mobile_wallpaper**: 手机壁纸。
1494
+ - **general_anime**: 动漫图。
1495
+ - **ai_drawing**: AI绘画。
1496
+ - **其他分类**
1497
+ - **bq**(表情包/趣图)
1498
+ - eciyuan
1499
+ - ikun
1500
+ - xiongmao
1501
+ - waiguoren
1502
+ - maomao
1270
1503
  - **furry**(福瑞)
1271
1504
  - z4k
1272
1505
  - szs8k
1273
1506
  - s4k
1274
1507
  - 4k
1275
- - **bq**(表情包/趣图)
1276
- - youshou
1277
- - xiongmao
1278
- - waiguoren
1279
- - maomao
1280
- - ikun
1281
- - eciyuan
1282
- - **acg**(二次元动漫)
1283
- - pc
1284
- - mb
1285
- - **外部图床精选图片**
1286
- - **ai_drawing**: AI绘画。
1287
- - **general_anime**: 动漫图。
1288
- - **landscape**: 风景图。
1289
- - **mobile_wallpaper**: 手机壁纸。
1290
- - **pc_wallpaper**: 电脑壁纸。
1291
- - **混合动漫**
1292
- - **anime**: 混合了UapiPro服务器的acg和外部图床的general_anime分类下的图片。
1293
1508
 
1294
1509
  > [!NOTE]
1295
1510
  > 默认全局随机(未指定category参数)时,不会包含ikun和AI绘画(ai_drawing)类别的图片。
@@ -1479,7 +1694,11 @@ class _SocialApi:
1479
1694
  通过视频的 `oid`(通常就是视频的`aid`),你可以分页获取该视频的评论区内容。你可以指定排序方式和分页参数,来精确地获取你需要的数据。
1480
1695
 
1481
1696
  ## 参数说明
1482
- - **`sort` (排序方式)**: `0`=按时间排序, `1`=按点赞数排序, `2`=按回复数排序。默认为按时间排序。
1697
+ - **`sort` (排序方式)**
1698
+ - `0` 或 `time`:按时间排序
1699
+ - `1` 或 `like`:按点赞排序
1700
+ - `2` 或 `reply`:按回复数排序
1701
+ - `3` 或 `hot`(也支持 `hottest`、`最热`):按最热排序
1483
1702
 
1484
1703
  ## 响应体字段说明
1485
1704
  - **`hots` (热门评论)**: 仅在请求第一页时,可能会返回热门评论列表。其结构与 `replies` 中的对象一致。
@@ -2067,7 +2286,7 @@ class _TranslateApi:
2067
2286
 
2068
2287
  def get_ai_translate_languages(self, **kwargs):
2069
2288
  r"""AI翻译配置
2070
- 获取AI智能翻译服务支持的完整语言列表、翻译风格选项、上下文场景选项以及性能指标信息。这个接口对于需要在前端动态展示翻译配置选项的应用非常有用,它会返回当前AI翻译服务所支持的所有语言代码、原生名称、翻译风格说明、上下文场景描述,以及服务的性能特征和限制信息。通过此接口,开发者可以构建用户友好的翻译界面,让用户选择合适的翻译参数。
2289
+ 获取AI智能翻译服务支持的完整语言列表、翻译风格选项、上下文场景选项以及性能指标信息。
2071
2290
  """
2072
2291
  params = {}
2073
2292
  body = {}
@@ -2078,7 +2297,7 @@ class _TranslateApi:
2078
2297
 
2079
2298
  def post_ai_translate(self, **kwargs):
2080
2299
  r"""AI智能翻译
2081
- 这是一个商业级的AI智能翻译服务,采用最新的神经网络翻译技术和大语言模型,提供远超传统机器翻译的质量。它不仅能够智能处理单个文本翻译,还支持高效的批量文本翻译,并且具备上下文感知、风格适配、格式保留等高级功能。
2300
+ 这是一个商业级的AI智能翻译服务,采用最新的神经网络翻译技术和大语言模型,提供远超传统机器翻译的质量。
2082
2301
 
2083
2302
  > [!VIP]
2084
2303
  > 本API目前处于**限时免费**阶段,我们鼓励开发者深度集成和测试。未来,它将转为付费API,为用户提供更稳定、更智能的翻译服务。
@@ -2200,25 +2419,23 @@ class _WebparseApi:
2200
2419
 
2201
2420
  def get_web_tomarkdown_async_status(self, **kwargs):
2202
2421
  r"""转换任务状态
2203
- 提交了URL转Markdown任务后,想知道处理进度和结果?这个接口可以帮你实时追踪。
2422
+ 提交了网页转 Markdown 任务后,想知道处理进度和结果?用这个接口来查询。
2204
2423
 
2205
2424
  ## 功能概述
2425
+ 通过任务 ID 查询转换任务的当前状态、处理进度和最终结果。任务结果缓存 30 分钟,期间可重复查询。
2206
2426
 
2207
- 通过之前提交任务时获得的任务ID,你可以查询该任务的当前状态、处理进度以及最终结果。任务结果会在缓存中保存30分钟,期间可以重复查询,非常方便。
2427
+ ## 任务状态
2208
2428
 
2209
- 任务有五种状态:等待处理(pending)时进度为0%;处理中(processing)时进度在10-90%之间;已完成(completed)时进度为100%并返回Markdown内容;失败(failed)时会返回错误信息;超时(timeout)表示任务处理时间超过60秒已被取消。建议采用指数退避策略进行轮询,初始延迟1秒,每次延迟增加20%,最大延迟5秒。当状态为已完成、失败或超时时停止轮询。
2429
+ | 状态 | 说明 |
2430
+ |------|------|
2431
+ | `pending` | 等待处理 |
2432
+ | `processing` | 处理中 |
2433
+ | `completed` | 已完成,可获取结果 |
2434
+ | `failed` | 失败 |
2435
+ | `timeout` | 超时(超过 60 秒) |
2210
2436
 
2211
- 系统会自动管理任务生命周期,单个任务最长处理时间为60秒,任务结果保存30分钟后自动清理,每5分钟清理一次过期任务。
2212
-
2213
- ## 任务状态说明
2214
-
2215
- | 状态 | 说明 | 进度 | 轮询建议 |
2216
- |------|------|------|----------|
2217
- | `pending` | 等待处理 | 0% | 立即开始轮询 |
2218
- | `processing` | 处理中 | 10-90% | 每2-5秒轮询一次 |
2219
- | `completed` | 已完成 | 100% | 停止轮询,获取结果 |
2220
- | `failed` | 失败 | 100% | 停止轮询,查看错误信息 |
2221
- | `timeout` | 超时 | 100% | 停止轮询,任务已取消 |
2437
+ > [!NOTE]
2438
+ > 建议每 2-5 秒轮询一次,当状态为 `completed`、`failed` 或 `timeout` 时停止轮询。
2222
2439
  """
2223
2440
  params = {}
2224
2441
  body = {}
@@ -2235,10 +2452,10 @@ class _WebparseApi:
2235
2452
 
2236
2453
  def get_webparse_extractimages(self, **kwargs):
2237
2454
  r"""提取网页图片
2238
- 想一次性“打包”一个网页上的所有图片吗?这个接口可以帮你实现。
2455
+ 想批量获取一个网页上的所有图片链接?这个接口帮你搞定。
2239
2456
 
2240
2457
  ## 功能概述
2241
- 你提供一个网页的URL,我们会访问该页面,解析其HTML内容,并提取出所有 `<img>` 标签中的图片链接,然后将这些链接列表返回给你。非常适合用于制作图片采集器或素材下载工具。
2458
+ 提供一个网页 URL,返回该页面中所有图片的链接列表。适合用于图片采集、素材下载等场景。
2242
2459
  """
2243
2460
  params = {}
2244
2461
  body = {}
@@ -2251,11 +2468,11 @@ class _WebparseApi:
2251
2468
  return self._http.request("GET", path, params=params, json=body if body else None)
2252
2469
 
2253
2470
  def get_webparse_metadata(self, **kwargs):
2254
- r"""网页元数据
2255
- 当你在应用中需要展示一个链接的预览时(就像微信或Telegram里那样),这个接口能帮你轻松获取所需信息。
2471
+ r"""提取网页元数据
2472
+ 想在应用里做链接预览卡片?这个接口帮你一键获取网页的标题、描述、图标等信息。
2256
2473
 
2257
2474
  ## 功能概述
2258
- 你提供一个网页的URL,我们会抓取并解析它的 `<head>` 部分,提取出关键的元数据(Metadata),如页面标题(Title)、描述(Description)、关键词(Keywords)以及网站图标(Favicon)等。
2475
+ 提供一个网页 URL,返回该页面的元数据,包括标题、描述、关键词、Favicon、Open Graph 信息等。非常适合用于生成链接预览卡片或做 SEO 分析。
2259
2476
  """
2260
2477
  params = {}
2261
2478
  body = {}
@@ -2269,20 +2486,16 @@ class _WebparseApi:
2269
2486
 
2270
2487
  def post_web_tomarkdown_async(self, **kwargs):
2271
2488
  r"""网页转 Markdown
2272
- 想要将复杂的网页转换为结构清晰的Markdown?这个接口采用异步处理模式,特别适合处理大型网页、复杂网站或需要长时间处理的转换任务。
2489
+ 想把一个网页的内容转成干净的 Markdown 文本?这个异步接口可以帮你搞定,特别适合处理大型或复杂的网页。
2273
2490
 
2274
2491
  ## 功能概述
2275
2492
 
2276
2493
  > [!VIP]
2277
- >本API目前处于**限时免费**阶段,我们鼓励开发者集成和测试。未来,它将转为付费API,为用户提供更稳定和强大的服务。
2278
-
2279
- UAPI Pro平台推出的异步网页转Markdown API能够将任意网页URL转换为结构清晰、格式优美的Markdown文本。提交任务后立即返回任务ID,不会阻塞客户端等待。您可以通过任务ID实时查询转换进度和处理状态,支持长达60秒的处理时间,轻松应对大型网站、需要JS渲染的单页应用等复杂页面。任务结果会缓存30分钟,期间可重复查询,过期任务自动清理无需手动管理。
2280
-
2281
- 此API采用先进算法,自动识别并抓取网页主体内容,精准剔除广告、导航栏、页眉页脚等无关元素。完美保留原文的格式,包括标题、列表、代码块、表格、引用、图片等,并输出为兼容性强的GitHub Flavored Markdown (GFM) 格式。同时会自动解析并提取文章标题、作者、发布日期、站点名称等关键元数据,并将其格式化为标准的YAML Front Matter,方便后续处理和CMS集成。
2494
+ > 本 API 目前处于**限时免费**阶段,未来将转为付费服务。
2282
2495
 
2283
- ## 使用流程
2496
+ 提交一个网页 URL,我们会自动抓取主体内容,剔除广告、导航栏等干扰元素,并转换为 Markdown 格式。同时会提取标题、作者、发布日期等元数据,生成 YAML Front Matter。
2284
2497
 
2285
- 调用本接口提交URL转换任务后,会立即获得一个唯一的任务ID。随后使用任务ID调用查询接口,获取任务状态和进度。任务完成后,从查询接口的响应中获取Markdown内容。
2498
+ 任务提交后会立即返回任务 ID,你可以用它来查询处理进度和结果。单个任务最长处理 60 秒,结果缓存 30 分钟。
2286
2499
  """
2287
2500
  params = {}
2288
2501
  body = {}
@@ -2316,7 +2529,7 @@ class _MinGanCiShiBieApi:
2316
2529
 
2317
2530
  def post_sensitive_word_analyze(self, **kwargs):
2318
2531
  r"""分析敏感词
2319
- 分析单个或多个关键词的敏感程度,返回详细的风险评分和分析结果。
2532
+ 分析单个或多个关键词的敏感程度,返回标准化风险标签与置信度结果。
2320
2533
 
2321
2534
  > [!VIP]
2322
2535
  > 本API基于先进的分析模型,提供三级缓存策略和并发处理能力。
@@ -2326,18 +2539,9 @@ class _MinGanCiShiBieApi:
2326
2539
  - **模型驱动**: 使用先进的分析模型进行语义分析。
2327
2540
  - **高性能**: 采用三级缓存策略(持久化存储 → 统一缓存 → 模型分析),确保高频请求的响应速度。
2328
2541
  - **并发支持**: 支持批量并发处理,单次最多可分析100个关键词。
2329
- - **详细评分**: 提供色情、辱骂、暴力三个维度的详细风险评分。
2330
- - **变体识别**: 能够自动识别关键词的常见变体形式,如拼音、缩写等。
2331
-
2332
- ## 风险评分说明
2333
-
2334
- 返回的 `s` 字段包含三个维度的风险评分,范围均为0.0至1.0:
2335
-
2336
- - **s[0] - 色情风险**: 评估内容涉及色情信息的程度。
2337
- - **s[1] - 辱骂/仇恨言论风险**: 评估内容是否包含侮辱性或仇恨性言论。
2338
- - **s[2] - 暴力/威胁风险**: 评估内容是否涉及暴力或威胁信息。
2339
-
2340
- 风险等级可参考:0.0-0.3为低风险,0.3-0.7为中等风险,0.7-1.0为高风险。
2542
+ - **标准标签**: 返回 `label` 字段,明确区分 `sensitive` 与 `normal`。
2543
+ - **分类清晰**: 返回 `category` 字段,用于标识具体风险类别。
2544
+ - **置信度输出**: 返回 `confidence` 字段,范围为0.0到1.0。
2341
2545
 
2342
2546
  ## 响应字段说明
2343
2547
 
@@ -2345,11 +2549,9 @@ class _MinGanCiShiBieApi:
2345
2549
  |------|------|------|
2346
2550
  | `results` | array | 分析结果对象的数组。 |
2347
2551
  | `results[].k` | string | 您在请求中提供的原始关键词。 |
2348
- | `results[].r` | string | 模型对该关键词的分析过程和判断理由的简要说明。 |
2349
- | `results[].s` | array[float] | 一个包含三个浮点数的数组,分别代表[色情, 辱骂, 暴力]三个维度的风险评分。分值范围从0.0到1.0,越高代表风险越大。 |
2350
- | `results[].v` | array[string] | 模型识别出的该关键词的常见变体形式,例如拼音、谐音、缩写等。 |
2351
- | `results[].t` | array[string] | 根据分析结果为关键词附加的分类标签,便于进行程序化处理和过滤。 |
2352
- | `results[].d` | string | 对整体分析结果的一句简短总结,适合直接展示给用户或记录在日志中。 |
2552
+ | `results[].label` | string | 核心判断字段:`sensitive`(敏感)、`normal`(正常)。 |
2553
+ | `results[].category` | string | 风险分类:`safe`(安全)、`threat`(威胁)、`porn`(色情)、`fraud`(欺诈)、`insult`(辱骂)。 |
2554
+ | `results[].confidence` | number | 当前分类的置信度,范围0.0到1.0。 |
2353
2555
  | `total` | integer | 本次请求成功分析的关键词总数。 |
2354
2556
 
2355
2557
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: uapi-sdk-python
3
- Version: 0.1.5
3
+ Version: 0.1.10
4
4
  Summary: Idiomatic UAPI SDK for Python
5
5
  Author-email: UAPI <dev@uapis.cn>
6
6
  Requires-Python: >=3.9
@@ -14,7 +14,7 @@ Requires-Dist: isort; extra == "dev"
14
14
 
15
15
  # uapi-sdk-python
16
16
 
17
- ![Banner](https://raw.githubusercontent.com/uapis/uapi-sdk-python/main/banner.png)
17
+ ![Banner](https://raw.githubusercontent.com/AxT-Team/uapi-sdk-python/main/banner.png)
18
18
 
19
19
  [![Python](https://img.shields.io/badge/Python-3.9+-3776AB?style=flat-square&logo=python&logoColor=white)](https://www.python.org/)
20
20
  [![Docs](https://img.shields.io/badge/Docs-uapis.cn-2EAE5D?style=flat-square)](https://uapis.cn/)