影响LLM效果的因素 - 模型能力(智力) - 通识理解和泛化能力 - 输入信息理解、推理、规划、执行能力 - 输入信息补充知识学习能力 - 文字生成创作的风格 - 相关信息(知识) - 与任务相关的信息 - 与互动背景相关的信息 - 模型输出控制(行动方法) - 单次请求控制 - Prompt表达优化 - 以CoT为代表的思维链控制方法 - 输出格式控制(文本格式语法、工程结构化数据输出…) - 多次请求控制 - 以ReAct(Action-Observation-Reflection)为代表的多轮自我反思优化 - 复杂任务的执行过程编排管理 |
### 单次请求的局限性 - 上下文窗口长度限制、输出长度限制(早期的LangChain长文本Summarize) - 直接进行CoT控制(尤其是用自然语言表达CoT)会输出思考过程,但我们不希望用户看到这个过程 - 随着工作进展出现的新信息,对任务时序、编排有依赖的信息,不一定能在单次请求中一次性完成输入 ### 工作流的优势 - 将工作任务拆分成多个工作节点 - 能够将模型单次请求调用视作一个工作节点 - 能够灵活将其他代码逻辑也写入工作节点 - 能够对工作节点进行任务编排 - 能够在工作节点之间进行数据传递 |
输入 第1阶段:原始的任务,初次执行 第2阶段:对第1阶段进行反思,思考哪些地方还有待提高 第3阶段:执行建议, 输出 反思调整阶段 复杂的任务就需要复杂的思考,反复的调整 这是因为第一次尝试得到的效果通常不好,需要进一步分析,反思,调整 发现问题/差异,给出建议,执行建议,确认效果, 反复重复这个过程,使问题/差异朝着小的方向改变 |
|
|
关于ChatGLM的Agent Bank(这里我假设您指的是基于ChatGLM构建的智能体或代理集合,因为“Agent Bank”并非一个直接对应的术语),我们可以从以下几个方面来探讨: 一、ChatGLM简介 ChatGLM是由智谱AI和清华大学KEG实验室联合发布的新一代对话预训练模型。ChatGLM系列模型,如ChatGLM3-6B,在保留了对话流畅、部署门槛低等优点的基础上,引入了更强大的基础模型、更完整的功能支持以及更全面的开源序列。ChatGLM不仅支持多轮对话,还原生支持工具调用、代码执行和Agent任务等复杂场景。 二、Agent Bank的概念 虽然“Agent Bank”不是ChatGLM官方直接使用的术语,但我们可以将其理解为基于ChatGLM构建的一系列智能体或代理的集合。这些智能体或代理可以根据用户的输入和上下文,自主执行一系列操作,完成特定任务。 三、基于ChatGLM构建Agent Bank的步骤 模型选择与加载: 选择合适的ChatGLM模型,如ChatGLM3-6B,并根据需求加载模型。 工具封装: 将特定的业务逻辑或功能封装成独立的工具或模块。这些工具可以是API调用、数据库查询、文件操作等。 Prompt设计: 设计合理的Prompt,以指导ChatGLM在特定场景下选择合适的工具并执行相应的操作。 Agent开发: 利用langchain等框架,将ChatGLM模型与封装好的工具结合,构建具有自主性的Agent。 Agent可以基于用户的输入和上下文,自主判断并调用相应的工具,完成复杂任务。 测试与优化: 对构建的Agent进行测试,确保其在各种场景下都能正常工作。 根据测试结果对Agent进行优化,提高其性能和准确性。 部署与应用: 将优化后的Agent部署到实际的应用场景中,为用户提供智能化的服务。 四、示例 假设我们想要构建一个基于ChatGLM的客服Agent Bank,该Bank包含多个客服Agent, 每个Agent负责处理不同领域的用户问题。 我们可以按照上述步骤进行开发: 首先,加载ChatGLM模型。 然后,将常见的客服问题分类并封装成独立的工具或模块,如订单查询、商品咨询、售后服务等。 设计合理的Prompt,以指导ChatGLM在接收到用户问题时选择合适的工具进行回复。 利用langchain等框架构建客服Agent,并测试其性能。 最后,将优化后的客服Agent部署到企业的客服系统中,为用户提供智能化的客服服务。 五、结论 虽然“Agent Bank”不是ChatGLM官方直接使用的术语, 但基于ChatGLM构建一系列智能体或代理集合是完全可行的。 通过合理的模型选择与加载、工具封装、Prompt设计、Agent开发、测试与优化以及部署与应用等步骤, 我们可以构建出功能强大、性能优越的Agent Bank,为用户提供智能化的服务。 |
|
|
|
|
# 安装所需要使用的包,langchain 0.2.10 !pip install openai langgraph Agently==3.3.1.9 mermaid-python nest_asyncio # 使用nest_asyncio确保异步稳定性 import nest_asyncio nest_asyncio.apply() from ENV import deep_seek_url, deep_seek_api_key, deep_seek_default_model import Agently agent = ( Agently.create_agent() .set_settings("current_model", "OAIClient") .set_settings("model.OAIClient.url", deep_seek_url) .set_settings("model.OAIClient.auth", { "api_key": deep_seek_api_key }) .set_settings("model.OAIClient.options", { "model": deep_seek_default_model }) ) result = agent.input(input("[请输入您的要求]: ")).start() print("[回复]: ", result) [请输入您的要求]: 我想学习音频算法,成为一名音频算法工程师,我该怎么做? [回复]: 成为一名音频算法工程师需要掌握一系列的技能和知识,包括音频信号处理、数学、编程、机器学习等。以下是一些步骤和建议,帮助你在这个领域取得进步: 1. 基础知识学习 数学基础:线性代数、概率论、统计学、微积分等。 信号处理:学习傅里叶变换、滤波器设计、采样理论等。 编程技能:掌握至少一种编程语言,如Python、C++或MATLAB。 2. 专业课程和书籍 在线课程:Coursera、edX、Udacity等平台上有关于信号处理和音频处理的课程。 专业书籍:《数字信号处理》(Oppenheim & Schafer)、《音频信号处理与识别》(Wang & Brown)等。 3. 实践经验 项目实践:尝试实现一些基本的音频处理算法,如回声消除、噪声抑制、音频压缩等。 开源项目:参与或贡献音频处理相关的开源项目,如Audacity、Librosa等。 4. 深入研究 机器学习:了解深度学习在音频处理中的应用,如语音识别、音乐生成等。 论文阅读:定期阅读音频处理领域的最新研究论文,如IEEE Transactions on Audio, Speech, and Language Processing等期刊。 5. 专业工具和软件 音频处理软件:学习使用如Audacity、Adobe Audition等软件。 开发工具:熟悉音频处理库和框架,如PyAudio、PortAudio、FFmpeg等。 6. 建立作品集 个人项目:完成一些个人项目,展示你的技能和创新。 技术博客:撰写技术博客,分享你的学习经验和项目成果。 7. 职业发展 实习机会:寻找音频算法相关的实习机会,积累实际工作经验。 行业交流:参加音频处理相关的会议和研讨会,如AES(Audio Engineering Society)会议。 网络建设:加入专业社群,与行业内的专家和同行建立联系。 8. 持续学习 关注行业动态:音频技术不断发展,需要持续关注最新的技术和研究趋势。 终身学习:不断提升自己的技能和知识,适应行业的变化。 通过上述步骤,你可以逐步建立起成为音频算法工程师所需的知识体系和实践经验。记住,这是一个持续学习和实践的过程,不断挑战自己,才能在这个领域取得成功。 |
|
|
|
|
⚡ Building language agents as graphs ⚡ https://langchain-ai.github.io/langgraph/ langgraphjs https://github.com/langchain-ai/langgraphjs |
环境 (base) xt@llm:/opt/wks/jupyter$ wkflow !pip install langgraph openai |
|
|
|
Huggingface 镜像站