大模型之智能体
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="alssr-0-0"><span data-offset-key="alssr-0-0">1 智能体</span></div><div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="3ncs9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3ncs9-0-0"><span data-offset-key="3ncs9-0-0">智能体可以被定义为一种应用程序,它通过观察环境并利用其可用的工具对环境采取行动以尝试实现预设目标。智能体具有自主性,可以在没有人类干预的情况 下独立行动,尤其是当它们被赋予了明确的目标或任务时。智能体的构成如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="9lgvq-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="539" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-943b2b2dda4e62ff1a2950e0787a487a.png" data-watermark-src="https://picx.zhimg.com/v2-70a0aa0469b8d9b647759789bfffc675.png" data-src="https://picx.zhimg.com/80/v2-943b2b2dda4e62ff1a2950e0787a487a_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3a18d-0-0"><span data-offset-key="3a18d-0-0">1.1 模型(Model)</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="53dgr-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="53dgr-0-0"><span data-offset-key="53dgr-0-0">在智能体的范畴内,模型指的是作为智能体流程的核心决策者的语言模型(LM)。这些模型能够遵循基于指令的推理和逻辑框架,例如 ReAct、Chain-of-Thought(思维链)或 Tree-ofThoughts(思维树),这是三种不同的方法或框架,旨在增强大语言模型(LLMs)在复杂推理任务中的表现。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="62r6k-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="62r6k-0-0"><span data-offset-key="62r6k-0-0">Chain-of-Thought (CoT, 思维链):将复杂的任务为一系列较小的问题和步骤,并逐步解决它们。最后再把较小步骤串起来,形成思维链。增强了解决问题能力,模型输出的可解释性。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="3uqh6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3uqh6-0-0"><span data-offset-key="3uqh6-0-0">Tree-of-Thoughts (ToT, 思维树):ToT 不仅 仅关注线性的推理路径,而是构建了一棵树形结构,其中每 个节点代表一个问题的部分解决方案,树枝则代表到达该节 点的操作。ToT 鼓励模型探索多个分支路径,并利用搜索算 法(如广度优先搜索或深度优先搜索)寻找最优解。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="3i9qu-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3i9qu-0-0"><span data-offset-key="3i9qu-0-0">ReAct:ReAct 可以理解为是一种结合了反应性控制 (reactive control)和主动规划(proactive planning) 的方法</span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="i24s-0-0"><span data-offset-key="i24s-0-0">1.2 工具</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="dh212-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="dh212-0-0"><span data-offset-key="dh212-0-0">使智能体能够与外部数据和服务进行交互, 并解锁超出基础模型自身能力范围的更广泛行动。工具可以有多 种形式,通常是一些http接口;工具,如扩展(Extensions)、函数(Functions)和数据 存储(Data Stores),作为智能体通往外部世界的桥梁,允许 它们与外部系统交互并获取超出其训练数据的知识。扩展在智能体和外部 API 之间架设桥梁,使 API 调用的执行和实时信息的检索成为可能。函数为开发者提供了更细致的控制,允许智能体生成可以在客户端执行的函数参数。数据存储为智能体提供对结构 化或非结构化数据的访问权限,使得数据驱动的应用成为可能。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="aht52-0-0"> </div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="f08tj-0-0"><span data-offset-key="f08tj-0-0">1.2.1 扩展</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="298r8-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="298r8-0-0"><span data-offset-key="298r8-0-0">视为一种标准化工具,例如航班,地图,天气扩展等;扩展是智能体和API之间的桥梁,作用是将智能体查询转换为API调用;智能体在运行时使用模型和示例来决定哪个扩展(如果有 的话)最适合解决用户的查询。类似于程序员解析协议参数,然后调用接口的过程;如果航班查询中少了出发地,该怎么处理;</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="84ive-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="240" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-3f55fb99f328edee07e292e627e444b3.png" data-watermark-src="https://picx.zhimg.com/v2-347d6d0fea9d6910f856bacc3e3a75ec.png" data-src="https://picx.zhimg.com/80/v2-3f55fb99f328edee07e292e627e444b3_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="9n0h2-0-0"><span data-offset-key="9n0h2-0-0">1.2.2 函数</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="aujn9-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="aujn9-0-0"><span data-offset-key="aujn9-0-0">完成特定任务的自包含代码模块,模型能够识别一组已知函数,并基于其规范决定何时使用每个函数及所需的输入参数和输出结果。客户端发起查询,智能将查询和一些示例发给模型,模型根据提示和示例输出调用什么函数和输入参数,客户端解析json中的函数名称和参数,客户端负责根据函数提供的指令来调用相应的 API 端点。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="45dg4-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="581" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-a0a431ac1e0cb6d575dc170a2dd5e7c5.png" data-watermark-src="https://pic1.zhimg.com/v2-3f138e0b2e87016c4897e080ffcd35ca.png" data-src="https://picx.zhimg.com/80/v2-a0a431ac1e0cb6d575dc170a2dd5e7c5_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="d3bts-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="d3bts-0-0"><span data-offset-key="d3bts-0-0">函数是在客户端执行的,而扩展和数据存储则是在智能体端执行。它们旨在为开发人员提供更多的控制权。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="kt5v-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="240" data-watermark="watermark" data-original-src="https://pic1.zhimg.com/v2-195fc8f7735ca0be16e7e9d37ea2e392.png" data-watermark-src="https://picx.zhimg.com/v2-ee1863a29884de63323fbe59f1ed402e.png" data-src="https://pic1.zhimg.com/80/v2-195fc8f7735ca0be16e7e9d37ea2e392_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="58ntp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="58ntp-0-0"><span data-offset-key="58ntp-0-0">使用函数而非扩展的原因可能:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="22m2c-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="22m2c-0-0"><span data-offset-key="22m2c-0-0">•架构限制:API 调用需要在应用程序堆栈的不同层进行,</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="71rje-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="71rje-0-0"><span data-offset-key="71rje-0-0">超出直接通过智能体架构流程的能力(例如中间件系统或前端框</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="b0sif-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="b0sif-0-0"><span data-offset-key="b0sif-0-0">架)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="eqoe6-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="eqoe6-0-0"><span data-offset-key="eqoe6-0-0">• 安全考量:由于安全或身份验证限制,阻止智能体直接调</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="f5ksn-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="f5ksn-0-0"><span data-offset-key="f5ksn-0-0">用 API(例如 API 未暴露给互联网,或者智能体基础设施无法访</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="e9lp3-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="e9lp3-0-0"><span data-offset-key="e9lp3-0-0">问)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="1aghi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1aghi-0-0"><span data-offset-key="1aghi-0-0">• 操作顺序:定时或操作顺序限制导致智能体不能实时进行</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="fn4eg-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="fn4eg-0-0"><span data-offset-key="fn4eg-0-0">API 调用(例如批处理操作或人工审核)。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="af4ga-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="af4ga-0-0"><span data-offset-key="af4ga-0-0">• 数据转换需求:需要对 API 响应应用额外的数据转换逻辑,</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="tcpo-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="tcpo-0-0"><span data-offset-key="tcpo-0-0">而智能体无法执行。例如,如果 API 端点没有提供结果数量的过</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="1g7r-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1g7r-0-0"><span data-offset-key="1g7r-0-0">滤机制,在客户端使用函数可以实现这样的转换。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="cp3bp-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cp3bp-0-0"><span data-offset-key="cp3bp-0-0">• 迭代开发便利性:开发人员希望在不部署额外的 API 端点</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="1dksr-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1dksr-0-0"><span data-offset-key="1dksr-0-0">基础设施的情况下迭代智能体开发(即函数调用可以作为 API 的</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="b8pno-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="b8pno-0-0"><span data-offset-key="b8pno-0-0">“模拟”)。</span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="a3i52-0-0"><span data-offset-key="a3i52-0-0">1.2.3 数据存储</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="74bba-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="74bba-0-0"><span data-offset-key="74bba-0-0">数据存储通过将传入的原始数据:电子表格或 PDF 文件文档转换为一组向量数据库;让模型访问各种格式的数据,如网站内容、PDF、Word 文档、CSV 文件等,来扩展模型知识的广度和深度。无需进行耗时的数据转换、模型重新训练或微调的过程。智能体响应步骤如下:</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="62p9f-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="62p9f-0-0"><span data-offset-key="62p9f-0-0">1.用户查询首先被发送到一个嵌入模型,以生成查询的嵌入。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="7a6ao-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7a6ao-0-0"><span data-offset-key="7a6ao-0-0">2. 这些查询嵌入随后使用匹配算法(例如 SCaNN)与向量数</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="4l4de-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="4l4de-0-0"><span data-offset-key="4l4de-0-0">据库中的内容进行匹配。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="8ihi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="8ihi-0-0"><span data-offset-key="8ihi-0-0">3. 匹配到的内容从向量数据库中以文本格式检索,并返回给</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="1ml6s-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="1ml6s-0-0"><span data-offset-key="1ml6s-0-0">智能体。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="bcfaj-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="bcfaj-0-0"><span data-offset-key="bcfaj-0-0">4. 智能体接收用户查询以及检索到的内容,然后制定相应的</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="akoju-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="akoju-0-0"><span data-offset-key="akoju-0-0">响应或行动。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="cv6tf-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="cv6tf-0-0"><span data-offset-key="cv6tf-0-0">5. 最终响应被发送给用户。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="3b6l4-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="504" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-b1d158e684fdcaa7371617e51cc5ea88.png" data-watermark-src="https://pic1.zhimg.com/v2-3ff475afd368f2a703e63644972b0dc5.png" data-src="https://picx.zhimg.com/80/v2-b1d158e684fdcaa7371617e51cc5ea88_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="7mj5b-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="7mj5b-0-0"><span data-offset-key="7mj5b-0-0">情境学习(In-context learning):固定的工具和知识,这种方法在推理时为通用模型提供提示、工具和少量示例,使模型能够“即时”学习如何及何时使用这些工具来完成特定任务。ReAct 框架就是这种方法在自然语言处理中的一个例子。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="2noi-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="2noi-0-0"><span data-offset-key="2noi-0-0">• 基于检索的情境学习(Retrieval-based in-context learning,):有外部数据库可以查询更多工具,这种技术通过从外部记忆中动态检索最相关的信息、工具和相关示例,来填充模型提示。例如,Vertex AI 扩展中的</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="3k934-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3k934-0-0"><span data-offset-key="3k934-0-0">“示例存储”或基于 RAG 架构的数据存储都是这一方法的应用实例。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="63sm-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="63sm-0-0"><span data-offset-key="63sm-0-0">• 基于微调的学习(Fine-tuning based learning):能够训练学习,这种方法涉及在推理前使用特定领域的大数据集对模型进行进一步训练。这有助于模型在接收任何用户查询之前理解何时以及如何应用某些工具。</span></div>
</div>
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="3tj0o-0-0"><span data-offset-key="3tj0o-0-0">1.3 编排层</span></div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="ak1s-0-0">
<div class="public-DraftStyleDefault-block public-DraftStyleDefault-ltr" data-offset-key="ak1s-0-0"><span data-offset-key="ak1s-0-0">编排层描述了一个循环过程,它决定了智能体如何接收信息、 进行内部推理,并利用这些推理来指导其下一步行动或决策。一 般来说,这个循环会持续进行,直到智能体达到其目标或一个停止点。有些循环可能是简单的计算和决策规则,而另一些可能包 含链式逻辑、涉及额外的机器学习算法,或者实现其他概率推理技术。循环的信息收集、规划、执行和调整,维护记忆、状态、推理和规划,它利用快速发展的提示工程技术及相 关框架指导推理和规划,使智能体能够更有效地与其环境互动并 完成任务。</span></div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="5akc8-0-0"> </div>
<div class="Image-captionContainer" data-size="normal">
<div>
<div class="Image-resizerContainer css-ym3v7r" data-size="normal">
<div class="css-79elbk">
<div>
<div class="ImageDelete-Container css-xi606m">
<div class="ImageDelete-Wrapper css-1gomreu"><img class="Image FocusPlugin--unfocused Image--isBlock lazyload" data-size="normal" data-rawwidth="865" data-rawheight="573" data-watermark="watermark" data-original-src="https://picx.zhimg.com/v2-79d07791a14cfc3b695f8ed14d765ee5.png" data-watermark-src="https://pic1.zhimg.com/v2-f6eb6b05a1c101e5c58fdffaed9488e9.png" data-src="https://picx.zhimg.com/80/v2-79d07791a14cfc3b695f8ed14d765ee5_1440w.png">
<div class="ImageEdit-button css-187js3w"> </div>
<div class="ImageDelete-button css-5sjb75"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>添加图片注释,不超过 140 字(可选)</div>
</div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="67aou-0-0"> </div>
<div class="Editable-unstyled" data-block="true" data-editor="afq61" data-offset-key="kkpa-0-0"> </div>
</div>
<div id="MySignature" role="contentinfo">
自己开发了一个股票智能分析软件,功能很强大,需要的关注微信公众号:QStockView<br><br>
来源:https://www.cnblogs.com/bclshuai/p/18819188
頁:
[1]