Haystack 与 ModelRiver 天作之合

这是由背靠 ModelRiver 强大靠山硬实托底支撑起的能够胜任拉上生产前线的 NLP 正规军工业管线阵列。随时都能为了属于您的全部各式 Haystack 组件部件奉送起自动化的故障防跌兜底网、成本开销盯防侦测乃至锁死的结构化输出范式。

大观概览 (Overview)

身为 Deepset 麾下开源开荒给构建极其扎实正经在生产线上抗压 NLP 系列重器(搜索挖掘大引擎、问答解惑大部头 Q&A 智囊库、还有话匣子大开的畅谈式 AI)使的专职大本营框架。人家那套本来长得叫做 OpenAIChatGenerator 的小核组件早就被安了一根能自己胡掐自定义随意乱指 API 端口基本址基座 (API base URL) 的引线,故而把它与 ModelRiver 此般结对那自当是手到拿来天衣无缝毫不折腾人的乐事。

这会让你捞着并赚回怎样的一笔大买卖:

  • 从 Haystack 所有的生火造字开练的发信生成类组件里往外窜冒着的调单全能被驯服牵着鼻子归流向走入 ModelRiver 的门道内做过关安检和调度
  • 就在把翻江倒海翻阅文书册底这种冗长排压的高危文件过堂流水线上时能够生受这保家神物保的一手自动抗雷跳反式大换岗接盘机制
  • 能巨细靡遗把控算盘敲得响震天响针对单单一趟穿针引线拉管子的总作业到底生生砸进去燃烧损耗多少大元与字数代金券(Token)的监控权
  • 想如何换角翻牌切换指头向哪一家 AI 厂子的货随意横跳那是信手拈来光在指挥席遥按遥控的事,连自家大院代码桩基的一抷热土也毫不须动土铲去重布署

麻溜上手快启章 (Quick start)

给家伙事儿全备齐咯统装上弹药补齐依赖包集

Bash
pip install haystack-ai

给大水管通往并死死咬定在 ModelRiver 之出入口接合处连牢紧

PYTHON
1from haystack.components.generators.chat import OpenAIChatGenerator
2from haystack.dataclasses import ChatMessage
3 
4# 直接使出指鹿为马移花接木的手段强改去接替接通这总开关和闸口向
5generator = OpenAIChatGenerator(
6 api_base_url="https://api.modelriver.com/v1",
7 api_key="mr_live_YOUR_API_KEY",
8 model="my-chat-workflow", # 必须写定 ModelRiver 家你自己拉成型的工作线名称作接头号
9)
10 
11messages = [ChatMessage.from_user("跟俺介绍明白它 ModelRiver 倒是干啥使吃饭的家伙?")]
12response = generator.run(messages=messages)
13print(response["replies"][0].text)

RAG 回溯捡漏大知识海串联管线 (RAG pipeline)

PYTHON
1from haystack import Pipeline
2from haystack.components.generators.chat import OpenAIChatGenerator
3from haystack.components.builders import ChatPromptBuilder
4from haystack.dataclasses import ChatMessage
5 
6# 这边还是老相好把出字机接班并派给背挂着神仙阵后盾的大管家代办代拉活儿的接口处
7generator = OpenAIChatGenerator(
8 api_base_url="https://api.modelriver.com/v1",
9 api_key="mr_live_YOUR_API_KEY",
10 model="my-chat-workflow",
11)
12 
13# 指派拉起盖词打样填空捏包组造造语台
14prompt_builder = ChatPromptBuilder()
15 
16# RAG 大法大戏所凭着能翻着出题解难发难拿书框人的引言文书模子范本
17rag_template = [
18 ChatMessage.from_system("有且仅有老老实实给我只照着跟从下面扒拉呈现出来的限定底子幕布去讲理与论理别瞎猜想:\n{{ context }}"),
19 ChatMessage.from_user("{{ question }}")
20]
21 
22# 水到渠成大阵起排拉引流水渠成型入账
23pipe = Pipeline()
24pipe.add_component("prompt_builder", prompt_builder)
25pipe.add_component("llm", generator)
26pipe.connect("prompt_builder.prompt", "llm.messages")
27 
28# 丢点响声扔块大硬骨头去趟这浑水
29result = pipe.run({
30 "prompt_builder": {
31 "template": rag_template,
32 "context": "据说 ModelRiver 是凭着一手能在众多不同招牌打卦的神仙列班云海厂子之中纵横游刃倒腾腾挪而把各路抛向 AI 门里的寻衅挑事找包解答帖子进行调兵遣将、在主将被连锅端歇火时有神力能够转轮后方候补登台全靠系统自行拨动开关跳挂衔接保不死的大路由法阵之关口集市。",
33 "question": "那倒说说此番这主位倒下被替换的大盘子救生容错备胎保底切换大法到底其内在肌理脉络是如何被这 ModelRiver 把玩的?"
34 }
35})
36 
37print(result["llm"]["replies"][0].text)

把话跟挤牙膏水滑过槽槽往版面屏幕漏泻倾洒的断点吐丝神技 (Streaming)

PYTHON
1from haystack.components.generators.chat import OpenAIChatGenerator
2from haystack.dataclasses import ChatMessage
3 
4# 光就多塞拉勾引出这一项专拿分块打粉碎后成碎片星火向你跟前狂洒猛弹这法器的回调口给设好把守
5generator = OpenAIChatGenerator(
6 api_base_url="https://api.modelriver.com/v1",
7 api_key="mr_live_YOUR_API_KEY",
8 model="my-chat-workflow",
9 streaming_callback=lambda chunk: print(chunk.content, end="", flush=True),
10)
11 
12messages = [ChatMessage.from_user("来短篇微型寓言小童话逗闷子解馋")]
13generator.run(messages=messages)

那敲下成批生皮大词散件字眼拿去压制并刻槽拍板归库的暗手 (Embeddings)

PYTHON
1from haystack.components.embedders import OpenAITextEmbedder, OpenAIDocumentEmbedder
2 
3# 先拿孤军散兵那些零碎干巴单独发难落单的一撇字文体先拿去练刀化影成阵图 (For individual texts)
4text_embedder = OpenAITextEmbedder(
5 api_base_url="https://api.modelriver.com/v1",
6 api_key="mr_live_YOUR_API_KEY",
7 model="my-embedding-workflow", # 上了这种便宜量大不怎么需要灵光仅干脏活拉单干活快准狠那组专线的代称槽名
8)
9 
10result = text_embedder.run(text="ModelRiver 端得是一个神鬼退避在各 AI 村庄间开大路通大江大站的通天神关")
11print(f"被打磨转化之后生造出的横拉标量降维这图码维数宽度量级是: {len(result['embedding'])}")
12 
13# 遇着个大长篇海量成扎本的长文成堆成片扔过来照这头如法处置即可 (For documents)
14doc_embedder = OpenAIDocumentEmbedder(
15 api_base_url="https://api.modelriver.com/v1",
16 api_key="mr_live_YOUR_API_KEY",
17 model="my-embedding-workflow",
18)

被供进圈子神坛的当红压箱底避闪要害防身必胜金训则言 (Best practices)

  1. 生剖互不碰面生划横切而置分两拨各显神通各开私灶专线 (Use separate workflows) 去照应一边只干压缩文字做刻模量组大工活(embedding)和一边主内耗功用神作答赋词回抛活儿(generation)这种异装双生的截组元件以作防爆
  2. 切记要把眼生抠长在上锁日日结账对口看账流水册单页簿上看红线 (Monitor pipeline costs) 直接猛点这切面进请求观管总志台: 因为这成批量扫视打包成文档海般狂刷并处理纸堆文章可就是纯吃耗如吞金猛兽一样对这种打点过子小纸头点金符(token-heavy)吃没边的险场面
  3. 绑上吊颈线勒住退无可退挂挡跳车保成活大绝招 (Configure fallbacks) 给那些断然不能出漏子绝不允准掉链子死给你看的那些铁人战网金刚流水线管子必然全上满不空巢
  4. 拉开泄洪大闸顺风飘洋一路水银写地去连打下流滚频放字出来 (Stream for interactive) 不仅为一问一诘 QA 辩嘴问答快爽乃至造作拟态客服扯天大喇叭式排版阵线

不在此停留继续向纵深大宝藏打洞深究之引道下一步探究