ecommerce-voice-cs
电商 AI 语音技能。用于在 OpenClaw 或类似技能宿主中,按不同触发词独立启用两套互不干扰的能力:(1) 售后客服模式,将售后文本咨询按预设退款规则生成客服回复并输出 TTS 音频;(2) 电话推销模式,按产品名称、功能、优势和优惠范围生成推销话术并输出 TTS 音频。适用于需要模式切换、配置确认、音色选...
MIT-0 · Free to use, modify, and redistribute. No attribution required.
⭐ 0 · 19 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
Name/description match the code: the package implements after-sales and sales text generation plus SenseAudio TTS. Required capabilities (API key, voice_id, output path) are consistent with the stated purpose. However, the repository ships .session_state JSON files and sample scripts that contain an apparent SenseAudio API key and paths — bundling real credentials in the package is not required for the skill to function and is disproportionate.
Instruction Scope
SKILL.md instructs collecting configuration, confirming entry, synthesizing text then TTS, and saving audio locally — and the code implements exactly that. The runtime reads/writes per-session JSON in .session_state and writes audio files to the configured audio_output_path. The instructions do not direct the agent to read unrelated system files or exfiltrate data to unexpected endpoints.
Install Mechanism
No install spec or external downloads are present; this is an instruction-plus-source bundle. All code is contained in the package and no remote arbitrary install/extract steps are declared. Risk from install mechanism is low.
Credentials
The skill legitimately needs a SenseAudio API key (passed in payload or via SENSEAUDIO_API_KEY). However, multiple included files (.session_state JSON files and temporary scripts) contain what appears to be a literal API key (strings starting with 'sk-...'). Packaging such credentials with the skill is unnecessary and dangerous. The number of env/credential references is small and appropriate for the purpose, but the presence of hardcoded secrets is a clear red flag.
Persistence & Privilege
The skill persists per-session JSON under .session_state and writes audio files to a configured directory — behaviors consistent with multi-turn session handling. It does not request 'always: true' or system-wide privileges nor attempt to modify other skills. Note: because it persists state (and example state contains API keys), secrets can be stored on disk and leaked if the .session_state files are not cleaned or if the package is distributed with them.
Scan Findings in Context
[embedded_api_key_literal_in_repo_files] unexpected: Files .session_state/webchat-sales-kefu-live.json and tmp_*.py include a string that looks like a SenseAudio API key (sk-...), which is not required to ship with the skill and poses a credential-leak risk.
What to consider before installing
This skill appears to implement exactly what it describes (after-sales and sales text-to-speech using SenseAudio). However: 1) the package contains .session_state and tmp scripts with an embedded API key — do not reuse that key; treat it as leaked and rotate it if you are the key owner. 2) Remove any .session_state/*.json and tmp scripts before installing or push to production, and audit the repository for hardcoded secrets. 3) Run the skill in an isolated environment and provide your own SenseAudio API key via environment or payload. 4) Confirm the audio_output_path is a safe writable directory (the skill writes audio files and session JSON to disk). 5) If you plan to use the skill for outbound calling/sales, consider legal and ethical/telemarketing rules in your jurisdiction. If you want to proceed, request the maintainer to remove embedded secrets and tmp/demo files or supply a clean release without credentials.Like a lobster shell, security has layers — review code before you run it.
Current versionv1.0.0
Download ziplatest
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
SKILL.md
Ecommerce Voice CS
实现一个最小可集成的电商售后语音客服 skill。
Trigger
识别触发词:
我需要你现在当一个客服机器人我需要你现在当一个推销员
这两个模式必须完全独立运行,不能共享会话状态、配置或业务逻辑。用户触发哪个模式,就只进入哪个模式。
售后模式
收到售后触发词后,不要立刻进入客服模式。先收集并确认这些配置:
api_keyrefund_policyunboxing_allowedshipping_fee_byaudio_output_pathvoice_id(可选,默认child_0001_b)
配置收集完整后,先给用户一份确认摘要。只有用户明确回复“确认进入”,才正式进入售后模式。
进入售后模式后,每次处理客户消息时都必须:
- 先生成文本客服回复
- 再生成 TTS 音频文件
- 在文本结尾附上“
TTS 已生成成功,文件已保存到:<path>”
电话推销模式
收到推销触发词后,不要立刻进入推销模式。先收集并确认这些配置:
api_keyaudio_output_pathproduct_nameproduct_featuresproduct_advantagesdiscount_rangevoice_id(可选,默认child_0001_b)
配置收集完整后,先给用户一份确认摘要。只有用户明确回复“开始”或确认进入,才正式进入电话推销模式。
进入电话推销模式后,每次处理客户消息时都必须:
- 先生成电话推销文本话术
- 再生成 TTS 音频文件
- 在文本结尾附上“
TTS 已生成成功,文件已保存到:<path>”
Runtime Inputs
调用方应提供这些字段:
session_id: 会话标识。多轮配置和客服模式都依赖同一个session_idmessage: 用户输入文本api_key: SenseAudio API Key,或通过环境变量SENSEAUDIO_API_KEY提供voice_id: 已确认可用的 SenseAudio voice_idrefund_policy: 退款政策文本unboxing_allowed: 是否支持拆封退货shipping_fee_by: 运费承担方audio_output_path: 音频输出目录product_name: 电话推销产品名称product_features: 电话推销产品功能product_advantages: 电话推销产品优势discount_range: 电话推销可优惠范围
Confirmed Voice IDs
只使用这 3 个已确认可用的 voice_id:
child_0001_bmale_0004_amale_0018_a
如果调用方未指定 voice_id,默认使用 child_0001_b。
Files
helper.py: 对外调用入口,包含售后模式和电话推销模式两套独立状态机src/ecommerce_voice_cs/: 底层实现,包括状态管理、规则引擎、SenseAudio TTS 适配层
Notes
- 当前仅接入公开可验证的 SenseAudio TTS 接口
- 音色克隆上传接口未公开时,不实现
upload_sample真正上传;直接使用现有voice_id - TTS 接口文档:
https://senseaudio.cn/docs/voice_api
Files
14 totalSelect a file
Select a file to preview.
Comments
Loading comments…
