博客專欄

EEPW首頁 > 博客 > LLM-Client一個輕量級的LLM集成工具

LLM-Client一個輕量級的LLM集成工具

發(fā)布人:數(shù)據(jù)派THU 時間:2023-07-09 來源:工程師 發(fā)布文章

大型語言模型(llm)已經(jīng)徹底改變了我們與文本交互的方式,OpenAI、Google、AI21、HuggingfaceHub、Anthropic和眾多開源模型提供了不同的功能和優(yōu)勢。但是每個模型都有其獨特的體系結(jié)構(gòu)、api和兼容性需求,集成這些模型是一項耗時且具有挑戰(zhàn)性的任務。


所以這時候LangChain就解決了這個問題,LLM集成工具為將不同的語言模型集成到您的項目中提供了一種簡化的方法。抽象了與每個LLM相關(guān)的復雜性和細微差別。使用LangChain,可以節(jié)省寶貴的時間和精力。


我這里又發(fā)現(xiàn)了一個剛剛發(fā)布不久的集成工具LLM-Client就出現(xiàn)了,本文將深入研究LLM -client和LangChain的特性、優(yōu)勢和注意事項。


圖片


LLM-Client和LangChain


llm-client和LangChain作為在不同的llm和項目需求之間架起橋梁,提供一致的API,無需大量的代碼修改就可以在llm之間切換。這種靈活性和兼容性使得實驗不同的模型、比較它們的性能并為您的項目選擇最合適的模型變得更加容易。


LangChain以其廣泛的功能而聞名,可以幫我們作為LLM的通用接口,管理提示的框架,提供長期記憶的中心接口,索引,LLM鏈以及LLM無法處理的任務(例如,計算或搜索)的其他代理。它有一個龐大的社區(qū)支持系統(tǒng)(目前GitHub上有超過45K star)。


而LLM-Client是專門為大型語言模型(llm)集成而設計的。它用戶友好的界面,專注于消除集成復雜性為開發(fā)人員提供了無縫的體驗。


LangChain


LangChain龐大的社區(qū)是一個顯著的優(yōu)勢。LangChain還擅長于對非異步使用的直接支持。


圖片


要使用LangChain生成文本,可以使用以下代碼:


安裝:

 pip install langchain[llms]


最簡單的調(diào)用:

 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提供了一個帶有標準化參數(shù)的包裝器,使開發(fā)人員能夠繞過復雜的設置或不一致的配置。該工具專為與llm無縫集成而設計,調(diào)用起來更簡單。


圖片


llm-client為開發(fā)人員提供了對ClientSession的更大控制,主要是為異步操作提供了便利。下面是如何與llm-client異步執(zhí)行文本補全:


安裝:

 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的開發(fā)人員提供的所以僅供參考:


圖片


總結(jié)


LangChain豐富的社區(qū)和直接的非異步使用可能適合尋找協(xié)作環(huán)境和更簡單的同步操作的開發(fā)人員。


LLM-Client客戶端的性能、靈活性和LLM集成的針對性設計使其成為那些尋求最大控制、高效和精簡工作流程的人的是一個很好的工具,尤其是有異步的調(diào)用可以提高響應性能。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉