共计 2254 个字符,预计需要花费 6 分钟才能阅读完成。
大型语言模型 (llm) 曾经彻底改变了咱们与文本交互的形式,OpenAI、Google、AI21、HuggingfaceHub、Anthropic 和泛滥开源模型提供了不同的性能和劣势。然而每个模型都有其独特的体系结构、api 和兼容性需要,集成这些模型是一项耗时且具备挑战性的工作。
所以这时候 LangChain 就解决了这个问题,LLM 集成工具为将不同的语言模型集成到您的我的项目中提供了一种简化的办法。形象了与每个 LLM 相干的复杂性和细微差别。应用 LangChain,能够节俭贵重的工夫和精力。
我这里又发现了一个刚刚公布不久的集成工具 LLM-Client 就呈现了,本文将深入研究 LLM -client 和 LangChain 的个性、劣势和注意事项。
LLM-Client 和 LangChain
llm-client 和 LangChain 作为在不同的 llm 和我的项目需要之间架起桥梁,提供统一的 API,无需大量的代码批改就能够在 llm 之间切换。这种灵活性和兼容性使得试验不同的模型、比拟它们的性能并为您的项目选择最合适的模型变得更加容易。
LangChain 以其宽泛的性能而闻名,能够帮咱们作为 LLM 的通用接口,治理提醒的框架,提供长期记忆的核心接口,索引,LLM 链以及 LLM 无奈解决的工作 (例如,计算或搜寻) 的其余代理。它有一个宏大的社区支持系统(目前 GitHub 上有超过 45K star)。
而 LLM-Client 是专门为大型语言模型 (llm) 集成而设计的。它用户敌对的界面,专一于打消集成复杂性为开发人员提供了无缝的体验。
LangChain
LangChain 宏大的社区是一个显著的劣势。LangChain 还擅长于对非异步应用的间接反对。
要应用 LangChain 生成文本,能够应用以下代码:
装置
pip install langchain[llms]
最简略的调用:
import os
from langchain.llms import OpenAI # Or any other model avilable on LangChain
os.environ["OPENAI_API_KEY"] = ... # insert your API_TOKEN here
llm = OpenAI(model_name="text-ada-001", n=2, best_of=2) # Here you can pass addtinal params e.g temperature, max_tokens etc.
llm("Tell me a joke")
对于异步文本生成(仅对某些模型可用),能够应用以下代码:
await llm.agenerate(["Hello, how are you?"])
LLM-Client
llm-client 提供了一个带有标准化参数的包装器,使开发人员可能绕过简单的设置或不统一的配置。该工具专为与 llm 无缝集成而设计,调用起来更简略。
llm-client 为开发人员提供了对 ClientSession 的更大管制,次要是为异步操作提供了便当。上面是如何与 llm-client 异步执行文本补全:
装置:
pip install llm-client[api]
代码示例:
import os
from aiohttp import ClientSession
from llm_client import OpenAIClient, LLMAPIClientConfig # Or any other model avilable on llm-client
async with ClientSession() as session:
llm_client = OpenAIClient(LLMAPIClientConfig(os.environ["API_KEY"], session, default_model="text-ada-001")
text = "This is indeed a test"
print("generated text:", await llm_client.text_completion(text, n=2, best_of=2)) # Here you can pass addtinal params e.g temperature, max_tokens etc.
在不应用 async 的状况下实现上述操作:
from llm_client import init_sync_llm_api_client
llm_client = init_sync_llm_api_client(LLMAPIClientType.OPEN_AI, api_key=os.environ["API_KEY"],
default_model="text-ada-001")
text = "This is indeed a test"
llm_client.text_completion(text, n=2, best_of=2)
llm_client.embedding(text)
LangChain 和 LLM-Client 比拟
这里有一个简略的列表,这个列表是 LLM-Client 的开发人员提供的所以仅供参考:
总结
LangChain 丰盛的社区和间接的非异步应用可能适宜寻找合作环境和更简略的同步操作的开发人员。
LLM-Client 客户端的性能、灵活性和 LLM 集成的针对性设计使其成为那些寻求最大管制、高效和精简工作流程的人的是一个很好的工具,尤其是有异步的调用能够进步响应性能。
https://avoid.overfit.cn/post/4f53410529ed4f708f223a024e4863b3
作者:Uri Peled