39亿元,7月23日转为净流入70.11亿元。进一步细分可见,资金更青睐科创属性更强的上游半导体材料设备,科创半导体材料设备ETF净流入64.
Moonshot 上周刚宣布 K3 会开源权重,这意味着任何推理服务商都能部署,闭源模型的价格压力只会更大。
// src/utils/auth.tsimport SparkMD5 from 'spark-md5';// 默认配置const DEFAULT_CONFIG = { appId: 'c547e77f5b954981b5e55469bf221e32', appSecret: '626fbdc4e1de45a8a345d399817703c6', voiceId: 'XMOV_HN_TTS__8'};// 生成鉴权Headersexport function generateAuthHeaders( method: string, url: string, data: Record = {}): AuthHeaders { const config = getConfig(); const timestamp = Math.floor(Date.now() / 1000); // JSON排序并去空格 const sortJsonStr = JSON.stringify(data, Object.keys(data).sort()).replace(/ /g, ''); // 生成签名字符串: url + method + data + secret + timestamp const signStr = `${timestamp}`; // MD5计算 const token = md5(signStr); return { 'X-APP-ID': config.appId, 'X-TIMESTAMP': String(timestamp), 'X-TOKEN': token, };}关键点说明:签名格式必须严格按照顺序:url + method + data + secret + timestampURL必须包含查询参数(如 /user/v1/ws/tts?tts_vcn=xxx)JSON数据需要排序并去除空格时间戳为秒级时间戳WebSocket代理服务实现由于浏览器限制,需要本地代理服务器处理鉴权:
20.jamiepine/voicebox 🏷️ 项目名称: jamiepine/voicebox🔗 项目地址: https://github.
: RetryPolicy; } interface RetryPolicy { maxAttempts: number; // 指数退避基础间隔(毫秒) baseDelay: number; // 可重试的错误类型 retryableErrors: string[]; } interface WorkflowConfig { // 全局超时时间 globalTimeout: number; // 最大并行度 maxConcurrency: number; // 状态持久化存储 stateStore: 'memory' | 'redis' | 'database'; } // 节点执行器的统一接口 interface NodeExecutor { execute(input: Record): Promise; } interface NodeResult { success: boolean; data: Record; // Token 消耗统计,用于成本追踪 tokenUsage?
但我的 100 和 200 不一样,严格来说属于未定义行为,编译器可以报错、报警告、或者什么都不报。