{"id":"7a1bc537-4c62-4387-8e15-5692b94a1c73","shortId":"j6SWN7","kind":"skill","title":"sn-image-base","tagline":"Base-layer skill for the SenseNova-Skills project, providing low-level APIs for image generation, recognition (VLM), and text optimization (LLM).\nThis skill does not preprocess inputs; it only calls backend services and returns results.\nThis skill is not user-facing and is intend","description":"# sn-image-base\n\n## Dependency Installation\n\n```bash\npip install -r requirements.txt\n```\n\n## Overview\n\n`sn-image-base` is the base-layer skill (tier 0) of the SenseNova-Skills project and provides three low-level tools:\n\n- `sn-image-generate`: image generation (calls text-to-image-no-enhance API)\n- `sn-image-recognize`: image recognition (uses VLM to analyze image content)\n- `sn-text-optimize`: text optimization (uses LLM to process text)\n\nThis skill **does not perform any input preprocessing** and only calls backend services to return results.\n\n## Tools List\n\n### sn-image-generate\n\nImage generation tool that calls the text-to-image-no-enhance API.\n\n`--prompt` is required; all other parameters are optional:\n\n| Parameter | Type | Default | Description |\n|------|------|--------|------|\n| `--prompt` | string | **Required** | Prompt text for image generation |\n| `--negative-prompt` | string | `\"\"` | Negative prompt |\n| `--image-size` | string | `2k` | Image size preset, supports `2k` only |\n| `--aspect-ratio` | string | `16:9` | Aspect ratio, e.g. `1:1`, `16:9`, `9:16` |\n| `--seed` | int | `None` | Random seed for reproducible generation |\n| `--unet-name` | string | `None` | Specify a UNet model name |\n| `--api-key` | string | `SN_IMAGE_GEN_API_KEY` -> `SN_API_KEY` | API key (CLI argument has priority; `MissingApiKeyError` is raised when all are empty) |\n| `--base-url` | string | `SN_IMAGE_GEN_BASE_URL` -> `SN_BASE_URL` | API base URL (CLI argument has priority) |\n| `--poll-interval` | float | `5.0` | Polling interval (seconds) |\n| `--timeout` | float | `300.0` | Timeout (seconds) |\n| `--insecure` | flag | `False` | Disable TLS verification |\n| `--save-path` | Path | Auto-generated | Save path |\n\n### sn-image-recognize\n\nImage recognition tool that uses VLM (Vision Language Model) to analyze image content. Supports multiple image inputs.\n\n`--images` and `--user-prompt` (or `--user-prompt-path`) are required. All other parameters use three-level defaults (CLI > env var > built-in default):\n\n| Parameter | Type | Built-in Default | Env Var | Description |\n|------|------|-----------|---------|------|\n| `--api-key` | string | No hardcoded default | `SN_VISION_API_KEY` -> `SN_CHAT_API_KEY` -> `SN_API_KEY` | Chat runtime API key; raises `MissingApiKeyError` when all are unset |\n| `--base-url` | string | `SN_CHAT_BASE_URL` default | `SN_VISION_BASE_URL` -> `SN_CHAT_BASE_URL` -> `SN_BASE_URL` | Vision provider base URL; falls back to shared chat/global provider |\n| `--model` | string | `sensenova-6.7-flash-lite` | `SN_VISION_MODEL` -> `SN_CHAT_MODEL` | Vision-capable model name |\n| `--vlm-type` | string | `openai-completions` | `SN_VISION_TYPE` -> `SN_CHAT_TYPE` | Chat protocol type override |\n| `--user-prompt-path` | string | `None` | - | Local file path, mutually exclusive with `--user-prompt` |\n| `--system-prompt-path` | string | `None` | - | Local file path, mutually exclusive with `--system-prompt` |\n\nAvailable values for `--vlm-type`:\n\n- `openai-completions`: OpenAI-compatible `/v1/chat/completions` interface\n- `anthropic-messages`: Anthropic Messages `/v1/messages` interface\n\n### sn-text-optimize\n\nText optimization tool that uses LLM (Language Model) to optimize text content. Does not accept image inputs.\n\n`--user-prompt` (or `--user-prompt-path`) is required. All other parameters use three-level defaults (CLI > env var > built-in default):\n\n| Parameter | Type | Built-in Default | Env Var | Description |\n|------|------|-----------|---------|------|\n| `--api-key` | string | No hardcoded default | `SN_TEXT_API_KEY` -> `SN_CHAT_API_KEY` -> `SN_API_KEY` | Chat runtime API key; raises `MissingApiKeyError` when all are unset |\n| `--base-url` | string | `SN_CHAT_BASE_URL` default | `SN_TEXT_BASE_URL` -> `SN_CHAT_BASE_URL` -> `SN_BASE_URL` | Text provider base URL; falls back to shared chat/global provider |\n| `--model` | string | `sensenova-6.7-flash-lite` | `SN_TEXT_MODEL` -> `SN_CHAT_MODEL` | Text model name |\n| `--llm-type` | string | `openai-completions` | `SN_TEXT_TYPE` -> `SN_CHAT_TYPE` | Chat protocol type override |\n| `--user-prompt-path` | string | `None` | - | Local file path, mutually exclusive with `--user-prompt` |\n| `--system-prompt-path` | string | `None` | - | Local file path, mutually exclusive with `--system-prompt` |\n\nAvailable values for `--llm-type`:\n\n- `openai-completions`: OpenAI-compatible `/v1/chat/completions` interface\n- `anthropic-messages`: Anthropic Messages `/v1/messages` interface\n\n## VLM vs LLM\n\n| Tool | Model Type | Image Input | Interface Type Parameter |\n|------|----------|-----------------|-------------|\n| `sn-image-recognize` | VLM (Vision Language Model) | Yes, supports multiple images | `--vlm-type` |\n| `sn-text-optimize` | LLM (Language Model) | No, text only | `--llm-type` |\n\n## Usage\n\nAll tools are called through the unified `sn_agent_runner.py` entrypoint:\n\n```bash\n# Image generation (only prompt required; api-key/base-url have defaults)\npython scripts/sn_agent_runner.py sn-image-generate \\\n    --prompt \"...\"\n\n# Image generation (override base-url)\npython scripts/sn_agent_runner.py sn-image-generate \\\n    --prompt \"...\" \\\n    --base-url \"https://custom-endpoint.com/v1\"\n\n# Image generation (explicitly override api-key)\npython scripts/sn_agent_runner.py sn-image-generate \\\n    --prompt \"...\" \\\n    --api-key \"sk-xxx\"\n\n# Image recognition (VLM) - minimal call (uses built-in Sensenova defaults)\npython scripts/sn_agent_runner.py sn-image-recognize \\\n    --user-prompt \"Describe the image\" \\\n    --images \"path/to/image.png\"\n\n# Image recognition (VLM) - override to Anthropic Claude API compatible (messages interface)\npython scripts/sn_agent_runner.py sn-image-recognize \\\n    --user-prompt \"Describe the image\" \\\n    --images \"path/to/image.png\" \\\n    --api-key \"sk-ant-xxx\" \\\n    --base-url \"https://api.anthropic.com\" \\\n    --model \"claude-sonnet-4-6\" \\\n    --vlm-type \"anthropic-messages\"\n\n# Text optimization (LLM) - minimal call (uses built-in Sensenova defaults)\npython scripts/sn_agent_runner.py sn-text-optimize \\\n    --user-prompt \"Optimize the text: ...\"\n\n# Text optimization (LLM) - override to Anthropic Claude API compatible (messages interface)\npython scripts/sn_agent_runner.py sn-text-optimize \\\n    --user-prompt \"Optimize the text: ...\" \\\n    --api-key \"sk-ant-xxx\" \\\n    --base-url \"https://api.anthropic.com\" \\\n    --model \"claude-sonnet-4-6\" \\\n    --llm-type \"anthropic-messages\"\n```\n\n### Default Parameter Behavior\n\nAuthentication parameters for `sn-image-generate` have the following default behavior:\n\n| Parameter | Default | Override | Description |\n|------|--------|----------|------|\n| `--base-url` | `SN_IMAGE_GEN_BASE_URL` -> `SN_BASE_URL` | `--base-url \"...\"` | CLI argument has priority |\n| `--api-key` | `SN_IMAGE_GEN_API_KEY` -> `SN_API_KEY` | `--api-key \"...\"` | CLI argument has priority; throws `MissingApiKeyError` if all values are empty |\n\n`sn-image-recognize` and `sn-text-optimize` use priority: **CLI argument > command-specific env var > shared `SN_CHAT_*` env var > global `SN_*` env var > built-in default**.\n\n| Parameter | Built-in Default | Vision Env Var | Text Env Var |\n|------|-----------|-------------|-------------|\n| `--api-key` | None (must be provided) | `SN_VISION_API_KEY` -> `SN_CHAT_API_KEY` -> `SN_API_KEY` | `SN_TEXT_API_KEY` -> `SN_CHAT_API_KEY` -> `SN_API_KEY` |\n| `--base-url` | `https://token.sensenova.cn/v1` | `SN_VISION_BASE_URL` -> `SN_CHAT_BASE_URL` -> `SN_BASE_URL` | `SN_TEXT_BASE_URL` -> `SN_CHAT_BASE_URL` -> `SN_BASE_URL` |\n| `--model` | `sensenova-6.7-flash-lite` | `SN_VISION_MODEL` -> `SN_CHAT_MODEL` | `SN_TEXT_MODEL` -> `SN_CHAT_MODEL` |\n| `--vlm-type` / `--llm-type` | `openai-completions` | `SN_VISION_TYPE` -> `SN_CHAT_TYPE` | `SN_TEXT_TYPE` -> `SN_CHAT_TYPE` |\n\n`api_key` resolution order (high to low): CLI `--api-key` > command-specific key (`SN_VISION_API_KEY`/`SN_TEXT_API_KEY`) > `SN_CHAT_API_KEY` > `SN_API_KEY`. If all are unset, `MissingApiKeyError` is raised.\n\nOnly `--api-key` must be provided via CLI or environment; base URL, model, and interface type have shared chat defaults.\n\n## Agent Configuration Integration\n\nThe agent can automatically read parameters from `openclaw.json` without manual input:\n\n| CLI Parameter | openclaw.json Field | Example |\n|-----------|-------------------|--------|\n| `--base-url` | `providers.<name>.baseUrl` | `https://api.anthropic.com` |\n| `--llm-type` | `providers.<name>.api` | `anthropic-messages` / `openai-completions` |\n| `--vlm-type` | `providers.<name>.api` | `anthropic-messages` / `openai-completions` |\n| `--model` | `providers.<name>.models[].id` | `claude-sonnet-4-6` |\n| `--api-key` | `providers.<name>.apiKey` or env var | `sk-cp-...` |\n\nNote: `--llm-type` and `--vlm-type` share the same `providers.<name>.api` field and are used by LLM and VLM tools respectively.\n\nMapping between `provider.api` and interface type:\n\n| api Value | Corresponding `--llm-type` / `--vlm-type` | Endpoint Path |\n|--------|----------------------------------|---------------|\n| `anthropic-messages` | `anthropic-messages` | `/v1/messages` |\n| `openai-completions` | `openai-completions` | `/v1/chat/completions` |\n| `openai-responses` | (future extension) | `/responses` |\n\n## Mapping Between base-url and Interface Type\n\nDifferent API types have different requirements for base-url format:\n\n| Type | `--llm-type` / `--vlm-type` | Recommended base-url | Code Appended Path | Final URL Example |\n|------|------------------------------|---------------|--------------|---------------|\n| LLM | `openai-completions` | `https://token.sensenova.cn/v1` | `/chat/completions` | `https://token.sensenova.cn/v1/chat/completions` |\n| LLM | `anthropic-messages` | `https://api.anthropic.com/v1` | `/messages` | `https://api.anthropic.com/v1/messages` |\n| VLM | `openai-completions` | `https://token.sensenova.cn/v1` | `/chat/completions` | `https://token.sensenova.cn/v1/chat/completions` |\n| VLM | `anthropic-messages` | `https://api.anthropic.com/v1` | `/messages` | `https://api.anthropic.com/v1/messages` |\n\n**Note**:\n\n- Recommended chat base URLs include the provider API version path, for example `/v1`.\n- For compatibility, if the configured chat base URL has no path, the runner appends `/v1/chat/completions` or `/v1/messages`.\n- If the configured chat base URL already has a path such as `/v1`, the runner appends only `/chat/completions` or `/messages`.\n- Some providers use versioned paths other than `/v1`, such as Gemini's `/v1beta/openai`.\n\n## Output Format\n\nAll tools support two output formats:\n\n- `--output-format text` (default): outputs plain text result\n- `--output-format json`: outputs JSON, including `status` and `elapsed_seconds` (runtime in seconds, rounded to 2 decimals)\n\nJSON output for `sn-image-recognize` and `sn-text-optimize` also includes `model`, `base_url`, and `interface_type` to verify the effective runtime configuration:\n\n```json\n{\n  \"status\": \"ok\",\n  \"result\": \"...\",\n  \"model\": \"sensenova-6.7-flash-lite\",\n  \"base_url\": \"https://token.sensenova.cn/v1\",\n  \"interface_type\": \"openai-completions\",\n  \"elapsed_seconds\": 1.23\n}\n```\n\nOn failure:\n\n```json\n{\n  \"status\": \"failed\",\n  \"error\": \"error message\",\n  \"elapsed_seconds\": 0.05\n}\n```\n\n## Input/Output Specification\n\nSee `references/api_spec.md` for details.","tags":["image","base","sensenova","skills","opensensenova","agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation"],"capabilities":["skill","source-opensensenova","skill-sn-image-base","topic-agent","topic-agent-skills","topic-ai-agents","topic-ai-assistant","topic-data-analysis","topic-document-processing","topic-office-automation","topic-presentation-slides"],"categories":["SenseNova-Skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-image-base","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add OpenSenseNova/SenseNova-Skills","source_repo":"https://github.com/OpenSenseNova/SenseNova-Skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1627 github stars · SKILL.md body (11,291 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T18:53:04.811Z","embedding":null,"createdAt":"2026-05-15T06:53:09.985Z","updatedAt":"2026-05-18T18:53:04.811Z","lastSeenAt":"2026-05-18T18:53:04.811Z","tsv":"'-6':875,944,1264 '-6.7':422,621,1114,1547 '/base-url':760 '/chat/completions':1379,1401,1464 '/messages':1390,1412,1466 '/responses':1335 '/v1':788,1089,1378,1389,1400,1411,1429,1459,1474,1555 '/v1/chat/completions':496,693,1329,1382,1404,1444 '/v1/messages':503,700,1322,1393,1415,1446 '/v1beta/openai':1479 '0':76 '0.05':1574 '1':208,209 '1.23':1563 '16':203,210,213 '2':1513 '2k':192,197 '300.0':286 '4':874,943,1263 '5.0':280 '9':204,211,212 'accept':523 'agent':1209,1213 'alreadi':1453 'also':1527 'analyz':113,318 'ant':864,933 'anthrop':499,501,696,698,839,880,910,949,1240,1251,1317,1320,1385,1407 'anthropic-messag':498,695,879,948,1239,1250,1316,1319,1384,1406 'api':19,103,161,233,239,242,244,269,362,370,374,377,381,561,569,573,576,580,758,794,804,841,860,912,929,989,994,997,1000,1056,1064,1068,1071,1075,1079,1082,1151,1160,1168,1172,1176,1179,1190,1238,1249,1266,1288,1305,1345,1424 'api-key':232,361,560,757,793,803,859,928,988,999,1055,1159,1189,1265 'api.anthropic.com':869,938,1233,1388,1392,1410,1414 'api.anthropic.com/v1':1387,1409 'api.anthropic.com/v1/messages':1391,1413 'apikey':1269 'append':1367,1443,1462 'argument':247,273,985,1003,1025 'aspect':200,205 'aspect-ratio':199 'authent':954 'auto':300 'auto-gener':299 'automat':1215 'avail':484,681 'back':414,613 'backend':38,138 'base':4,6,56,68,72,258,264,267,270,390,395,400,404,407,411,589,594,599,603,606,610,774,784,867,936,971,976,979,982,1085,1092,1096,1099,1103,1107,1110,1199,1229,1339,1352,1364,1419,1436,1451,1530,1551 'base-lay':5,71 'base-url':257,389,588,773,783,866,935,970,981,1084,1228,1338,1351,1363 'baseurl':1232 'bash':59,751 'behavior':953,965 'built':349,355,548,554,816,889,1041,1046 'built-in':348,354,547,553,815,888,1040,1045 'call':37,96,137,153,745,813,886 'capabl':434 'chat':373,379,394,403,430,448,450,572,578,593,602,629,645,647,1033,1067,1078,1095,1106,1122,1128,1143,1149,1175,1207,1418,1435,1450 'chat/global':417,616 'claud':840,872,911,941,1261 'claude-sonnet':871,940,1260 'cli':246,272,345,544,984,1002,1024,1158,1196,1223 'code':1366 'command':1027,1163 'command-specif':1026,1162 'compat':495,692,842,913,1431 'complet':443,492,640,689,1138,1244,1255,1325,1328,1375,1397,1560 'configur':1210,1434,1449,1540 'content':115,320,520 'correspond':1307 'cp':1275 'custom-endpoint.com':787 'custom-endpoint.com/v1':786 'decim':1514 'default':172,344,351,357,367,397,543,550,556,566,596,762,819,892,951,964,967,1043,1048,1208,1492 'depend':57 'describ':829,854 'descript':173,360,559,969 'detail':1580 'differ':1344,1348 'disabl':292 'e.g':207 'effect':1538 'elaps':1506,1561,1572 'empti':256,1012 'endpoint':1314 'enhanc':102,160 'entrypoint':750 'env':346,358,545,557,1029,1034,1038,1050,1053,1271 'environ':1198 'error':1569,1570 'exampl':1227,1371,1428 'exclus':464,479,661,676 'explicit':791 'extens':1334 'face':49 'fail':1568 'failur':1565 'fall':413,612 'fals':291 'field':1226,1289 'file':461,476,658,673 'final':1369 'flag':290 'flash':424,623,1116,1549 'flash-lit':423,622,1115,1548 'float':279,285 'follow':963 'format':1354,1481,1487,1490,1499 'futur':1333 'gemini':1477 'gen':238,263,975,993 'generat':22,93,95,148,150,181,221,301,753,768,771,781,790,801,960 'global':1036 'hardcod':366,565 'high':1155 'id':1259 'imag':3,21,55,67,92,94,100,106,108,114,147,149,158,180,189,193,237,262,306,308,319,323,325,524,708,715,724,752,767,770,780,789,800,809,824,831,832,834,849,856,857,959,974,992,1015,1520 'image-s':188 'includ':1421,1503,1528 'input':34,133,324,525,709,1222 'input/output':1575 'insecur':289 'instal':58,61 'int':215 'integr':1211 'intend':52 'interfac':497,504,694,701,710,844,915,1203,1303,1342,1533,1556 'interv':278,282 'json':1500,1502,1515,1541,1566 'key':234,240,243,245,363,371,375,378,382,562,570,574,577,581,759,795,805,861,930,990,995,998,1001,1057,1065,1069,1072,1076,1080,1083,1152,1161,1165,1169,1173,1177,1180,1191,1267 'languag':315,515,719,733 'layer':7,73 'level':18,88,343,542 'list':144 'lite':425,624,1117,1550 'llm':28,123,514,635,685,704,732,739,884,907,946,1134,1235,1278,1294,1309,1357,1372,1383 'llm-type':634,684,738,945,1133,1234,1277,1308,1356 'local':460,475,657,672 'low':17,87,1157 'low-level':16,86 'manual':1221 'map':1299,1336 'messag':500,502,697,699,843,881,914,950,1241,1252,1318,1321,1386,1408,1571 'minim':812,885 'missingapikeyerror':250,384,583,1007,1185 'model':230,316,419,428,431,435,516,618,627,630,632,706,720,734,870,939,1112,1120,1123,1126,1129,1201,1256,1258,1529,1545 'multipl':322,723 'must':1059,1192 'mutual':463,478,660,675 'name':224,231,436,633 'negat':183,186 'negative-prompt':182 'none':216,226,459,474,656,671,1058 'note':1276,1416 'ok':1543 'openai':442,491,494,639,688,691,1137,1243,1254,1324,1327,1331,1374,1396,1559 'openai-compat':493,690 'openai-complet':441,490,638,687,1136,1242,1253,1323,1326,1373,1395,1558 'openai-respons':1330 'openclaw.json':1219,1225 'optim':27,119,121,508,510,518,731,883,898,902,906,921,925,1021,1526 'option':169 'order':1154 'output':1480,1486,1489,1493,1498,1501,1516 'output-format':1488,1497 'overrid':453,650,772,792,837,908,968 'overview':64 'paramet':167,170,339,352,538,551,712,952,955,966,1044,1217,1224 'path':297,298,303,334,457,462,472,477,533,654,659,669,674,1315,1368,1426,1440,1456,1471 'path/to/image.png':833,858 'perform':131 'pip':60 'plain':1494 'poll':277,281 'poll-interv':276 'preprocess':33,134 'preset':195 'prioriti':249,275,987,1005,1023 'process':125 'project':14,82 'prompt':162,174,177,184,187,329,333,456,468,471,483,528,532,653,665,668,680,755,769,782,802,828,853,901,924 'protocol':451,648 'provid':15,84,410,418,609,617,1061,1194,1231,1237,1248,1257,1268,1287,1423,1468 'provider.api':1301 'python':763,776,796,820,845,893,916 'r':62 'rais':252,383,582,1187 'random':217 'ratio':201,206 'read':1216 'recogn':107,307,716,825,850,1016,1521 'recognit':23,109,309,810,835 'recommend':1362,1417 'references/api_spec.md':1578 'reproduc':220 'requir':164,176,336,535,756,1349 'requirements.txt':63 'resolut':1153 'respect':1298 'respons':1332 'result':42,142,1496,1544 'return':41,141 'round':1511 'runner':1442,1461 'runtim':380,579,1508,1539 'save':296,302 'save-path':295 'scripts/sn_agent_runner.py':764,777,797,821,846,894,917 'second':283,288,1507,1510,1562,1573 'see':1577 'seed':214,218 'sensenova':12,80,421,620,818,891,1113,1546 'sensenova-skil':11,79 'servic':39,139 'share':416,615,1031,1206,1284 'size':190,194 'sk':807,863,932,1274 'sk-ant-xxx':862,931 'sk-cp':1273 'sk-xxx':806 'skill':8,13,30,44,74,81,128 'skill-sn-image-base' 'sn':2,54,66,91,105,117,146,236,241,261,266,305,368,372,376,393,398,402,406,426,429,444,447,506,567,571,575,592,597,601,605,625,628,641,644,714,729,766,779,799,823,848,896,919,958,973,978,991,996,1014,1019,1032,1037,1062,1066,1070,1073,1077,1081,1090,1094,1098,1101,1105,1109,1118,1121,1124,1127,1139,1142,1145,1148,1166,1170,1174,1178,1519,1524 'sn-image-bas':1,53,65 'sn-image-gener':90,145,765,778,798,957 'sn-image-recogn':104,304,713,822,847,1013,1518 'sn-text-optim':116,505,728,895,918,1018,1523 'sn_agent_runner.py':749 'sonnet':873,942,1262 'source-opensensenova' 'specif':1028,1164,1576 'specifi':227 'status':1504,1542,1567 'string':175,185,191,202,225,235,260,364,392,420,440,458,473,563,591,619,637,655,670 'support':196,321,722,1484 'system':470,482,667,679 'system-prompt':481,678 'system-prompt-path':469,666 'text':26,98,118,120,126,156,178,507,509,519,568,598,608,626,631,642,730,736,882,897,904,905,920,927,1020,1052,1074,1102,1125,1146,1171,1491,1495,1525 'text-to-image-no-enh':97,155 'three':85,342,541 'three-level':341,540 'throw':1006 'tier':75 'timeout':284,287 'tls':293 'token.sensenova.cn':1088,1377,1381,1399,1403,1554 'token.sensenova.cn/v1':1087,1376,1398,1553 'token.sensenova.cn/v1/chat/completions':1380,1402 'tool':89,143,151,310,511,705,743,1297,1483 'topic-agent' 'topic-agent-skills' 'topic-ai-agents' 'topic-ai-assistant' 'topic-data-analysis' 'topic-document-processing' 'topic-office-automation' 'topic-presentation-slides' 'two':1485 'type':171,353,439,446,449,452,489,552,636,643,646,649,686,707,711,727,740,878,947,1132,1135,1141,1144,1147,1150,1204,1236,1247,1279,1283,1304,1310,1313,1343,1346,1355,1358,1361,1534,1557 'unet':223,229 'unet-nam':222 'unifi':748 'unset':388,587,1184 'url':259,265,268,271,391,396,401,405,408,412,590,595,600,604,607,611,775,785,868,937,972,977,980,983,1086,1093,1097,1100,1104,1108,1111,1200,1230,1340,1353,1365,1370,1420,1437,1452,1531,1552 'usag':741 'use':110,122,312,340,513,539,814,887,1022,1292,1469 'user':48,328,332,455,467,527,531,652,664,827,852,900,923 'user-fac':47 'user-prompt':327,466,526,663,826,851,899,922 'user-prompt-path':331,454,530,651 'valu':485,682,1010,1306 'var':347,359,546,558,1030,1035,1039,1051,1054,1272 'verif':294 'verifi':1536 'version':1425,1470 'via':1195 'vision':314,369,399,409,427,433,445,718,1049,1063,1091,1119,1140,1167 'vision-cap':432 'vlm':24,111,313,438,488,702,717,726,811,836,877,1131,1246,1282,1296,1312,1360,1394,1405 'vlm-type':437,487,725,876,1130,1245,1281,1311,1359 'vs':703 'without':1220 'xxx':808,865,934 'yes':721","prices":[{"id":"82183bc6-276a-425f-be0a-f725a7b3b244","listingId":"7a1bc537-4c62-4387-8e15-5692b94a1c73","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"OpenSenseNova","category":"SenseNova-Skills","install_from":"skills.sh"},"createdAt":"2026-05-15T06:53:09.985Z"}],"sources":[{"listingId":"7a1bc537-4c62-4387-8e15-5692b94a1c73","source":"github","sourceId":"OpenSenseNova/SenseNova-Skills/sn-image-base","sourceUrl":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-image-base","isPrimary":false,"firstSeenAt":"2026-05-15T06:53:09.985Z","lastSeenAt":"2026-05-18T18:53:04.811Z"}],"details":{"listingId":"7a1bc537-4c62-4387-8e15-5692b94a1c73","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"OpenSenseNova","slug":"sn-image-base","github":{"repo":"OpenSenseNova/SenseNova-Skills","stars":1627,"topics":["agent","agent-skills","ai-agents","ai-assistant","data-analysis","document-processing","office-automation","presentation-slides"],"license":"mit","html_url":"https://github.com/OpenSenseNova/SenseNova-Skills","pushed_at":"2026-05-15T04:43:37Z","description":"Modular SenseNova skills for building AI-powered office assistants and productivity workflows","skill_md_sha":"ad13c24779ad517da1ddec3a028234f37aa31256","skill_md_path":"skills/sn-image-base/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/OpenSenseNova/SenseNova-Skills/tree/main/skills/sn-image-base"},"layout":"multi","source":"github","category":"SenseNova-Skills","frontmatter":{"name":"sn-image-base","description":"Base-layer skill for the SenseNova-Skills project, providing low-level APIs for image generation, recognition (VLM), and text optimization (LLM).\nThis skill does not preprocess inputs; it only calls backend services and returns results.\nThis skill is not user-facing and is intended for upper-layer skills only."},"skills_sh_url":"https://skills.sh/OpenSenseNova/SenseNova-Skills/sn-image-base"},"updatedAt":"2026-05-18T18:53:04.811Z"}}