supeng 5 часов назад
Родитель
Сommit
b68ca980e7
1 измененных файлов с 44 добавлено и 33 удалено
  1. 44 33
      examples/content_finder/tools/hotspot_profile.py

+ 44 - 33
examples/content_finder/tools/hotspot_profile.py

@@ -31,7 +31,28 @@ async def get_account_fans_portrait(
     timeout: Optional[float] = None,
 ) -> ToolResult:
     """
-    获取抖音账号粉丝画像
+    获取抖音账号粉丝画像(热点宝数据)
+
+    Args:
+        account_id: 抖音账号ID(使用 author.sec_uid)
+        need_province: 是否获取省份分布,默认 False
+        need_city: 是否获取城市分布,默认 False
+        need_city_level: 是否获取城市等级分布(一线/新一线/二线等),默认 False
+        need_gender: 是否获取性别分布,默认 False
+        need_age: 是否获取年龄分布,默认 True
+        need_phone_brand: 是否获取手机品牌分布,默认 False
+        need_phone_price: 是否获取手机价格分布,默认 False
+        timeout: 超时时间(秒),默认 60
+
+    Returns:
+        ToolResult: 包含粉丝画像数据
+        - ratio: 占比(百分比)
+        - tgi (偏好度): > 1.0 表示该人群偏好高于平均水平,< 1.0 表示低于平均
+          例如:50岁以上 tgi=1.5 表示该账号粉丝中50岁以上人群的占比是全平台平均的1.5倍
+
+    注意:
+        - 默认只返回年龄分布,需要其他维度时设置对应参数为 True
+        - 省份数据只显示 TOP5
     """
     try:
         payload = {
@@ -47,15 +68,6 @@ async def get_account_fans_portrait(
 
         request_timeout = timeout if timeout is not None else DEFAULT_TIMEOUT
 
-        # async with httpx.AsyncClient(timeout=request_timeout) as client:
-        #     response = await client.post(
-        #         ACCOUNT_FANS_PORTRAIT_API,
-        #         json=payload,
-        #         headers={"Content-Type": "application/json"},
-        #     )
-        #     response.raise_for_status()
-        #     data = response.json()
-
         response = requests.post(
             ACCOUNT_FANS_PORTRAIT_API,
             json=payload,
@@ -146,7 +158,28 @@ async def get_content_fans_portrait(
     timeout: Optional[float] = None,
 ) -> ToolResult:
     """
-    获取抖音内容点赞用户画像
+    获取抖音内容点赞用户画像(热点宝数据)
+
+    Args:
+        content_id: 抖音内容ID(使用 aweme_id)
+        need_province: 是否获取省份分布,默认 False
+        need_city: 是否获取城市分布,默认 False
+        need_city_level: 是否获取城市等级分布(一线/新一线/二线等),默认 False
+        need_gender: 是否获取性别分布,默认 False
+        need_age: 是否获取年龄分布,默认 True
+        need_phone_brand: 是否获取手机品牌分布,默认 False
+        need_phone_price: 是否获取手机价格分布,默认 False
+        timeout: 超时时间(秒),默认 60
+
+    Returns:
+        ToolResult: 包含点赞用户画像数据
+        - ratio: 占比(百分比)
+        - tgi (偏好度): > 1.0 表示该人群偏好高于平均水平,< 1.0 表示低于平均
+          例如:50岁以上 tgi=1.5 表示该视频点赞用户中50岁以上人群的占比是全平台平均的1.5倍
+
+    注意:
+        - 默认只返回年龄分布,需要其他维度时设置对应参数为 True
+        - 省份数据只显示 TOP5
     """
     try:
         payload = {
@@ -162,15 +195,6 @@ async def get_content_fans_portrait(
 
         request_timeout = timeout if timeout is not None else DEFAULT_TIMEOUT
 
-        # async with httpx.AsyncClient(timeout=request_timeout) as client:
-        #     response = await client.post(
-        #         CONTENT_FANS_PORTRAIT_API,
-        #         json=payload,
-        #         headers={"Content-Type": "application/json"},
-        #     )
-        #     response.raise_for_status()
-        #     data = response.json()
-
         response = requests.post(
             CONTENT_FANS_PORTRAIT_API,
             json=payload,
@@ -246,16 +270,3 @@ async def get_content_fans_portrait(
             output="",
             error=str(e),
         )
-
-# async def main():
-#     # result = await get_account_fans_portrait(
-#     #     account_id="MS4wLjABAAAAXvRdWJsdPKkh9Ja3ZirxoB8pAaxNXUXs1KUe14gW0IoqDz-D-fG0xZ8c5kSfTPXx"
-#     # )
-#     # print(result.output)
-#     result = await get_content_fans_portrait(
-#         content_id="7495776724350405928"
-#     )
-#     print(result.output)
-#
-# if __name__ == "__main__":
-#     asyncio.run(main())