什么是链式架构

我们已经学习了langchain封闭的一些基础操作,那么如果要用langchain开发一个完整的应用程序,就需要用到链式架构。 首先理解一下langchain中链的概念。链,是封装完成某个功能的一个完整操作流程。

使用 LLMChain / ConversationChain 实现

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from langchain.chat_models import ChatOpenAI
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain
import os

OPENAIKEY = os.getenv("OPENAI_API_KEY") # 建议更名

llm = ChatOpenAI(
model="gpt-4o",
temperature=0,
max_tokens=None,
timeout=30, # 建议设置合理超时
max_retries=2,
api_key=OPENAIKEY,
base_url="https://api.openai-proxy.org/v1",
)

prompt = PromptTemplate(
    input_variables=["company","language"],
    template="为这家{company}公司取一个亮眼{language}名字:",
)

chain = LLMChain(llm=llm, prompt=prompt)

message = chain.invoke({"company":"咨询","language":"英文"})

print(message)

输出:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
{
  "company": "咨询",
  "language": "英文",
  "text": "当然!以下是一些亮眼的英文名字建议,适合咨询公司使用
  1. **Visionary Edge**
  寓意前瞻性和领先优势,适合强调创新和战略的咨询公司。

  2. **Pinnacle Advisory**
  “Pinnacle”意为巅峰,传递卓越和专业的形象。

  3. **Catalyst Partners**
  “Catalyst”意为催化剂,象征推动变革和加速成功。

  4. **Elevate Consulting**
  “Elevate”意为提升,传递帮助客户迈向更高层次的理念。

  5. **Aspire Strategies**
  “Aspire”意为追求卓越,适合强调愿景和目标的公司。

  6. **Nexus Advisory**
  “Nexus”意为连接,象征建立联系和整合资源。

  7. **Luminary Insights**
  “Luminary”意为杰出人物或启明星,传递智慧和领导力。

  8. **Momentum Group**
  “Momentum”意为动力,象征推动客户持续发展。

  9. **Summit Solutions**
  “Summit”意为顶峰,传递帮助客户达到巅峰的理念。

  10. **Beacon Consulting**
  “Beacon”意为灯塔,象征指引方向和提供清晰的解决方案。

  如果有具体的行业或公司定位,可以进一步调整名字以更贴合品牌形象!"
}

chain = LLMChain(llm=llm, prompt=prompt),这里的LLMChain就是一个链,它把我们的提示词传给大模型, 并把大模型的返回内容返回给我们,这样的一整个操作流程被封装成为了LLMChain这样的一个链,功能类似一个函数。