文中全部的示例代码都已托管到GitHub:https://github.com/TuGraph-contrib/langchain-demo1. 引言
喜欢实操的小伙伴可以边阅读,边复现。
我:LangChain是什么?顾名思义,LangChain中的“Lang”天然是指大语言模子,“Chain”即“链”,也就是将大模子与其他组件连接成链,借此构建AI工程应用。那么LangChain该如何(How)做到这一点的呢?解答这个问题之前,需要先回答什么是工程?什么是AI工程?
GPT-4:LangChain 是一个开源的语言模子工具链框架,旨在使研究职员和开发职员能够更轻松地构建、实验和摆设以天然语言处置惩罚(NLP)为中心的应用程序。它提供了多种组件和工具,可帮助用户使用最近的语言模子进展,如大型 Transformer 模子等,并且可以与 Hugging Face 等平台集成。
LangChain 的核生理念是将语言模子用作协作工具,通过它,开发者可以构建出处置惩罚复杂使命的系统,并且可以高效地对接不同的数据源和应用程序接口(APIs)。这个框架试图简化连接不同的输入和输出流,以及在流中实现语言模子的过程。
工程是指以某组设想的目的为依据,应用有关的科学知识和技术手段,通过有组织的一群人将某个(或某些)现有实体(天然的或人造的)转化为具有预期使用代价的人造产品过程。其中,“目的”定义了要解决的问题域,决定了工程的顶层设计和能力界限,同时也定义了“产品”的终极形态。提升“人”的ROI是工程设计的代价归属。“实体”是工程的生产材料输入,“科学 | 技术”是工程有序运行的底子,对它们的合理使用可以提升工程的整体产出效率。
图计算是一种计算模子,用于处置惩罚大规模图形布局的数据,并实行各种复杂的算法和计算。这种计算模子主要用于交际网络分析、Web搜索、生物信息学、网络路由优化、数据挖掘等范畴。图计算模子的核心是将数据表示为图形布局(节点和边),这样可以更好地揭示数据之间的关系和互动。在图计算中,算法通常以迭代的方式运行,每次迭代都会更新图中节点的状态,直到到达某种停止条件。3.1.2 Completion API
me: 什么是图计算?3.3 初步封装——SDK
ai: 图计算是一种计算模子,用于处置惩罚大规模图形布局数据的计算和分析。在这种计算模子中,数据被表示为图形,其中节点代表实体,边代表实体之间的关系。图计算可以用于解决许多实际问题,如交际网络分析、网络路由、生物信息学等。图计算的主要挑衅是如何有效地处置惩罚大规模的图形数据,并提供快速的计算和分析结果。
me: 刚才我问了什么问题?
ai: 你问的问题是:“什么是图计算?”
content='图计算是一种计算模子,主要用于处置惩罚图形布局数据的计算和分析。图计算的对象是图,图由节点和边构成,节点代表实体对象,边代表实体对象之间的关系。图计算主要用于解决实体关系复杂、关系麋集的问题,如交际网络分析、网络拓扑分析、推荐系统等。图计算的主要使命是通过对图中节点和边的计算,发现和提取出图中隐含的知识和信息。'3.4 数据抽象——IO
苹果是一种营养丰富的水果,具有帮助消化、保护心脏、降低糖尿病风险、强化免疫系统、帮助减肥、保护视力、防备哮喘、抗癌和提升影象力等多种长处。然而,过度食用或者不适当的食用方式也可能带来一些不利影响,如引发过敏、导致腹泻、对牙齿造成伤害、可能携带农药残留、影响正常饮食和钙质吸收、增长蛀牙风险和引发胃痛等。因此,我们在享受苹果带来的长处的同时,也需要注意适量和正确的食用方式。通过调用chain.get_graph().print_ascii()可以查看Chain的计算图布局。固然,使用LangSmith能更清晰的跟踪每一步的计算结果。
export LANGCHAIN_TRACING_V2="true"3.5.4 LangGraph
export LANGCHAIN_API_KEY=""
图计算是一种计算类型,主要处置惩罚的数据布局是图。图是由节点(或极点)和边构成的,节点代表实体,边代表实体之间的关系。在图计算中,主要解决的问题是如何在图的布局上进行有效的计算和分析。这里可以看到,创建带Memory功能的Chain,并不能使用统一的LCEL语法。调用LLMChain使用的是predict而非invoke方法,直接调用invoke会返回一个LLMResult类型的结果。因此,LLMChain也不能使用管道运算符接StrOutputParser。这些设计上的问题,个人推测也是现在Memory模块还是Beta版本的原因之一吧。
你问的问题是:“什么是图计算?”
蚂蚁图数据库现在没有公开信息表明已经开源。开源状态可能会随时间和公司政策变化,建议直接查阅蚂蚁团体或相关开源平台的官方信息获取最新和准确的消息。
是的,蚂蚁的图数据库产品TuGraph是开源的。
“会使用工具”是人类和动物的根本区别。要构建更强大的AI工程应用,只有生成文本这样的“纸上谈兵”能力天然是不够的。工具不仅仅是“肢体”的延伸,更是为“大脑”插上了想象力的“翅膀”。借助工具,才气让AI应用的能力真正具备无穷的可能,才气从“认识世界”走向“改变世界”。
[{'type': 'get_temperature', 'args': {'city': '杭州'}}]实际上LangChain提供了大量的内置工具和工具库的支持。@tool只是提供了简洁的工具创建的支持,要定制复杂的工具行为需要自行实现BaseTool工具接口。同时工具库接口BaseToolkit下也有大量的实现,如向量存储、SQL数据库、GitHub等等。用户可以根据自身需求选用或自行扩展。
Agent的核心思想是使用大型语言模子(LLM)来选择要采取的举措序列。在Chain中举措序列是硬编码的,而Agent则采用语言模子作为推理引擎来确定以什么样的顺序采取什么样的举措。Agent相比Chain最典范的特点是“自治”,它可以通过借助LLM专长的推理能力,自动化地决议获取什么样的知识,采取什么样的举措,直到完成用户设定的终极目的。
> Entering new AgentExecutor chain...需要增补说明的是,LangChain提供了Hub功能,帮助大家管理共享Agent的提示词模板。上述示例代码的Agent提示词模板和hwchase17/openai-tools-agent的定义等价。
Invoking: get_temperature with {'city': 'Hangzhou'}
16 今天杭州的气温是16度。
> Finished chain.
今天杭州的气温是16度。
欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |