概览
要知道时下能执 Python 界编排 AI 风向之牛耳的顶流担当无出其右者非 LangChain 莫属。仰仗着在其被奉为公家范式样板的那个叫做 ChatOpenAI 核心总控类的类属性底层建筑骨缝中留有一扇名为随心更换 base_url 自调自控主入口的开明暗门,您可以轻易无压将矛头一指将 ModelRiver 引接入场——没有一丝多余累赘,零负担的寄生装载。
由此您能豪揽收归到名下哪些实质赋能特质:
- 出入经手属于您的那块场域里盘桓过招走跳的一兵一卒,举凡是 LangChain 的招系如工作小链子(chain)、跑单独狼探长(agent)甚至是临时唤起小五金库拿来砸墙搞事的特招小手腕类函数请求全部借由 ModelRiver 这一交通集散中心枢纽的红绿灯指挥交联接网。
- 设惹前程遇梗首发首选项的大后台服务器抛锚趴窝宕机打呼噜叫不醒之时自动立刻强心触发唤起它身带潜藏储备的救命后勤救生兜底网络支援补位顶上去包圆这单事。
- 于您那能够检点每日点滴消费记录账目单的 查账室请求日志(Request Logs) 那里把一笔分账打薄直见底部分摊记下关于花销与 token 折损明细以昭大白于天下。
- 即便是到了大分流派工指派各属流水工作台等顶配应用场域也能毫无妥协地实现结构化样式强制框定并产供定型交货的制式承诺担保。
快点上手带飞速动
按下准备键安设基座储备弹药包及资源依赖项
pip install langchain langchain-openai openai将主阀门旋纽拨向与 ModelRiver 相通
1from langchain_openai import ChatOpenAI2 3llm = ChatOpenAI(4 openai_api_base="https://api.modelriver.com/v1",5 openai_api_key="mr_live_YOUR_API_KEY",6 model="my-chat-workflow", # ← 这里必须乖乖换填你在家里的 ModelRiver 本部早已建置发配完的专用代号 (workflow name)7 temperature=0.7,8 max_tokens=1000,9)10 11response = llm.invoke("简评下何谓 ModelRiver 大神?")12print(response.content)搞定收工:从常规那熟悉得让人闭眼操作套搬标准件版本的 ChatOpenAI 装配模组堆里只消随带拨动两处标牌就可以顺顺利利挂靠到总成上了,易如反掌罢。
组合打点 (Chains)
来个简便通俗打下基础的工作小接点传菜链
1from langchain_core.prompts import ChatPromptTemplate2 3prompt = ChatPromptTemplate.from_messages([4 ("system", "你当前扮演一个古道热肠愿意拔刀相助的王牌级市场导购宣发软文写手。"),5 ("user", "{input}")6])7 8chain = prompt | llm9 10response = chain.invoke({"input": "试拟写一条用以推行发布某种专注于针对 AI 接发路由的控制平台所需传诵的大字广告标语"})11print(response.content)来套具有先后连环阵势起承转合的工作编队序列连打传递链
1from langchain_core.output_parsers import StrOutputParser2 3# 第一阵传火者 Chain 1: 用来负责无脑往外抛金点子迸发大脑风暴狂想篇4idea_prompt = ChatPromptTemplate.from_messages([5 ("system", "凭空生成勾画 3 笔别具一格富于天马行空创作想象性质力的商业实体产物名字。"),6 ("user", "大体品类是: {product}")7])8 9# 接力的二阵主考官 Chain 2: 层层筛检只取最优那个桂冠优胜者为尊并阐述当选由头10pick_prompt = ChatPromptTemplate.from_messages([11 ("system", "请相中最好听最能镇得住场面的那只头牌名头并且附加仅仅一句不能再多的大实话说透为什么选它是实至名归。"),12 ("user", "各参选候选单体呈上在此:\n{ideas}")13])14 15idea_chain = idea_prompt | llm | StrOutputParser()16pick_chain = pick_prompt | llm | StrOutputParser()17 18# 化作合体一统归宗 (Compose) 大法流19full_chain = (20 {"ideas": idea_chain, "product": lambda x: x["product"]}21 | pick_chain22)23 24result = full_chain.invoke({"product": "挂着由 AI 核心强劲心肺来带队运转把门的 API 高能守护网关平台"})25print(result)装配随行带着看家小五金件外挂工具库一展身手的话痨能探小干员们(Agents with tools)
1from langchain_core.tools import tool2from langchain.agents import create_tool_calling_agent, AgentExecutor3from langchain_core.prompts import ChatPromptTemplate, MessagesPlaceholder4 5@tool6def get_weather(location: str) -> str:7 """提取某个固定发问地方片区的当前即时天气阴晴圆缺。"""8 # 在这里假装向真实的气象站广播总台摇人拿回播报暗号的 API 请求占位坑9 return f"据报当前在 {location} 此地室外环境天色正值 22°C 且艳阳高照如春。"10 11@tool12def search_web(query: str) -> str:13 """去庞大无际浩瀚的蛛网界域大海捞针爬找情报。"""14 # 模拟在底下默默发起搜索询问引流探针搜索词缀的 API 点将仪式召唤坑15 return f"搜索针对此查问 '{query}' 提拎出来抢走聚光灯热度最响排名首推榜首结论反馈结果是: 传说中叫 ModelRiver 当行的大佬竟然正是一尊兼具掌门统合调度收发 AI 算力发牌功能的网关中枢要塞..."16 17tools = [get_weather, search_web]18 19prompt = ChatPromptTemplate.from_messages([20 ("system", "现在开始你的真身则是一名单兵配备带好齐全套索刀具兵刃好施展拳脚并且随大局能够帮上大忙的助手型角色。"),21 MessagesPlaceholder("chat_history", optional=True),22 ("user", "{input}"),23 MessagesPlaceholder("agent_scratchpad"),24])25 26agent = create_tool_calling_agent(llm, tools, prompt)27executor = AgentExecutor(agent=agent, tools=tools, verbose=True)28 29result = executor.invoke({"input": "有谁晓得巴黎当下的气候作何打算?"})30print(result["output"])RAG 大图书馆知识挖掘打捞分拣流水生产总线 (RAG pipeline)
1from langchain_openai import OpenAIEmbeddings2from langchain_community.vectorstores import FAISS3from langchain_core.prompts import ChatPromptTemplate4from langchain_core.runnables import RunnablePassthrough5from langchain_core.output_parsers import StrOutputParser6 7# 您要是有单独拉拉扯扯单独给配置分发指正过带有属于他自身专属那条转译打图谱所挂靠使用的工作流水槽通道号,就连造这种文字投影字串标量映射组 (Embeddings) 那也完全有那等容光借 ModelRiver 这条高低起落坦途顺藤飘走8embeddings = OpenAIEmbeddings(9 openai_api_base="https://api.modelriver.com/v1",10 openai_api_key="mr_live_YOUR_API_KEY",11 model="my-embedding-workflow",12)13 14# 开天辟地拉条案版现场现成临时搓一铺充作索引总集池的文献归属地借由这一叠文件材料作胚底铺张成个聚散点15texts = [16 "传言 ModelRiver 常作为一把将漫天抛来的这些与智能有关 AI 求教接应单信件拨落四方洒网分发给四面八方潜伏接单商的无形派发路由指挥交通枢导棍。",17 "平台上的所谓的工作流水线系统能够去帮定死派定将有哪几尊正牌接单首选服务商及打字回信执笔主导模型将参与其中,如果遇到抛锚爆胎则谁上任接锅其一整套后备轮胎梯队阵式配置策略也是这里说的算。",18 "经过精心装配打造定做的结构化制成品保证能够信誓旦旦如同签署硬性契约死锁约定担保拍胸脯打包票确保生产交单出场的那个最终带包形态必定不逾矩遵守这属于他们自身制式规格图谱样板 JSON 阵形内范畴框框的红线边界去出牌。",19]20vectorstore = FAISS.from_texts(texts, embeddings)21retriever = vectorstore.as_retriever()22 23# 架好正式接通 RAG 本身连通链槽24rag_prompt = ChatPromptTemplate.from_messages([25 ("system", "你得凭靠底下抛给你那些限定视野背景舞台去展开去作答此道追询难题切莫信口乱编:\n\n{context}"),26 ("user", "{question}")27])28 29rag_chain = (30 {"context": retriever, "question": RunnablePassthrough()}31 | rag_prompt32 | llm33 | StrOutputParser()34)35 36answer = rag_chain.invoke("请你来讲讲为何还有这一出?怎么 ModelRiver 还能懂得在有主子扑街时打援包揽作处理救场的事故后事换挡挂线重演调性故障转移策略的呢?")37print(answer)逐字连流不绝如瀑地向您的银幕界面吐放生词片甲 (Streaming)
1from langchain_openai import ChatOpenAI2 3llm = ChatOpenAI(4 openai_api_base="https://api.modelriver.com/v1",5 openai_api_key="mr_live_YOUR_API_KEY",6 model="my-chat-workflow",7 streaming=True,8)9 10for chunk in llm.stream("来跟我叨叨侃大山扯一小段睡前迷你寓言轶事吧"):11 print(chunk.content, end="", flush=True)定调设框约束好长啥模样便必得分毫不差的结构化格式定输出规条 (Structured outputs)
不妨把 LangChain 家这尊唤作 with_structured_output 当法宝给请出来再加上点小配伍和 ModelRiver 这里本身在平台上设立早就预先调校勾勒规划好那张大框架结格式样约束图纲要挂配绑定打在一起上盘端上来:
1from pydantic import BaseModel, Field2 3class MovieReview(BaseModel):4 title: str = Field(description="这部观影戏目的放映挂名头号大题名")5 rating: float = Field(description="满分为极品 10 分制下的苛刻冷酷手打给出的品评星际评断综合值")6 summary: str = Field(description="极简到甚至只能塞进一丁点呼吸用单单一句话就能点破其内涵中心思想的干爽大意简述总结词")7 8structured_llm = llm.with_structured_output(MovieReview)9 10review = structured_llm.invoke("快去出评定点拨一篇评价讲述那是叫个什么来着、对啦就是那个大名鼎鼎如雷贯耳的叫盗梦空间 (Inception) 的名场面剧集大作")11print(f"{review.title}: 夺下这评分榜: {review.rating}/10 分得主: 短语总结它就是 {review.summary}")单开一路因应所需针对分切出之不同的业务逻辑层链环逐层分配用兵搭配差遣各种专长领域互异专线型态的专属工作流编组通道兵力
能一出击就在同行群雄里夺魁斩将、突显显出这是打生存在 ModelRiver 其大本命先天优上的一手无可取代绝对性必杀特例独属身位天赋在于——你能大加发挥那股极尽所能将您手上那个冗杂大系统管道内的所有关节层段肢解揉碎然后再分别塞入丢进这五花八门分别被特别训练强化定制开出挂职所属那些特需各有所能专门针对大模型和底层厂家发单求应专职定制好的不同配组战队里打个天翻地覆分进合击去开工:
1# 要快如闪电手眼通天般迅速就给你归集定门类作分划阵列用这个脚程最快的战队牌号快马加鞭版2classifier = ChatOpenAI(3 openai_api_base="https://api.modelriver.com/v1",4 openai_api_key="mr_live_YOUR_API_KEY",5 model="fast-classifier", # 哪怕比方就是这只比如说是打在诸如像是 GPT-4o-mini 上头的那种轻巧灵泛级模型机种6)7 8# 对文字深耕精雕细作穷思极想耗尽家底大显重文火武火熬煮提笔作赋大加铺排的强劲火眼雄将9writer = ChatOpenAI(10 openai_api_base="https://api.modelriver.com/v1",11 openai_api_key="mr_live_YOUR_API_KEY",12 model="deep-writer", # 等同如挂在比如比照像是深挖细探能吃劲干大货的那类譬如 Claude 3.5 Sonnet 大户人家型门第里拉出头名红火主理当镇场大轴之能机种上一样13)14 15# 各怀绝技手眼自通在这铺面摆开大龙阵管网架构序列的这管连绵起伏流水全段里每一个中续发落转进枢纽上皆都能遇得最好也为之恰如其分契合绝代默契绝不再无能顶戴去委派最搭最优型号的主角顶杠子扛大旗上差发差16classify_chain = classify_prompt | classifier | StrOutputParser()17write_chain = write_prompt | writer | StrOutputParser()奉作金规玉律的那些经验之谈绝不外传最佳保身心法实干秘传行规操作 (Best practices)
- 一把专用对应钥匙只开那对应专属的对版型号场景那把大锁 (One workflow per use case): 请别串频或者混吃海塞大杂乱了,但凡涉及了去搞那等诸如是要给文字文章起底判身归总画定分门别类 (classification) 还有那凭空造物拉大篇出重章写剧稿下苦功创生派作法 (generation) 也同样囊包着要收水去繁化简提炼抓大纲核心浓缩精解去打总结等繁多事务流转的差异时这等截然隔如山别大相迥殊应用实地请必然坚守分线切拨给到它专职对应所属那一项定制开发之 ModelRiver 内置大工匠所造那一条专门为其加固特供铺就的主打工作流之流水专线槽去操心费力搞承办。
- 锁死上墙大门激活点通那带有强制规范性的具有约束捆绑之固定输出成材出场样貌体制机制 (Enable structured outputs): 直接在由自家后院主内掌权的 ModelRiver 高台内院去提早框准勾勒定局并打好这个框架定模 (schemas) 而把后患规避在前头藉以让那从各派各宗系旁接走穴大管子底下统合并串连着的万种请求能不偏不倚定性按点出成那些乖生生完全符合预期这 JSON 面谱形状轮廓大网定式的安分不折腾。
- 时节入微时刻贴身做大巡检排查常态化驻点把关并记流水于请求日志本内册做有案查底归宗 (Monitor in Request Logs): 凡是有哪只带着由是出自于 LangChain 血源本宗家系的调频大呼号在场上大发声出过动静或走上出面亮了招那必然都会在这个包罗面相极宽 统合全息查验室一号哨位可观测性台席大版 (Observability) 前头毫无遮拦遗存带全部其祖辈连串血脉宗亲谱全装原数据挂有尽头带标签明示显影曝光之列呈现留存于斯。
- 拉出安全扣别带上后备救护队 (Use fallbacks): 记下这真金铁规即让那些关于如果一遭失了足摔了一交大马趴后能派什么小卒在下面做掩护代号递补上去再撑一阵再打的此等统兵接防战换将更迭方案规划 (backup providers) 请一股脑儿权只向交托于此端更擅这专行专门并作为大管门权司重置的 ModelRiver 座下大内核心阵地去统筹定下那总盘面统略全规统发调度 (centralised management),而大可以撇弃封存抛给去信重并依托去依附到原指那些只是自带属于那附挂挂包上点儿毛皮自重式内建自带属性里的那一系本家的 LangChain 之退备后路方案上去折腾费心劳累。
- 打开闸门向外涓滴直泻让前端对视眼见为实打通大水喉全开给外围看客那等前排交互 (Stream for user-facing chains): 到真正面临着那给大众公开接应开张卖戏并且具有同用户一唱两和搭上腔对话频仍带感式大活互联场控型接发流面貌那些个要讲应用反应之场景时别犹豫绝不要吝啬而尽速地就挂挂着设定切将进那项
streaming=True旗帜点着燃起来做满打全好服务好前呼后拥。
下一步您可以接着观瞻的项目
- 转场再去取经拜会一下跟那号 LlamaIndex 两家联手对对碰的好文篇引指南录集: 这个则是一脉相承极其痴情专门吃向咬定面向去主干和打造成全那个称为 RAG 流打法而衍生发家集结起势的一系骨架名宗巨擘。
- 接着翻找这本关乎能跟叫 CrewAI 干上连调联防合作的攻略法门章则: 教你怎么去主导并安排一场这带多个具有极强人设跟各专所长的 AI 百搭大小机伶活探班班跟机动特种大队一块协约统排同唱出好一拨联机走大剧的联动狂奔狂放版群口统筹编排盛典秀图景。
- 深查接口名录字典 (API reference): 为您列排展示一览关于接口终端方方面面的总揽定音拍板终极解绑细则终稿底卷宗大全。