Skip to main content
Amazon API Gateway 是一项完全托管的服务,使开发人员能够轻松地在任意规模下创建、发布、维护、监控和保护 API。API 充当应用程序访问后端服务中数据、业务逻辑或功能的“门户”。使用 API Gateway,您可以创建支持实时双向通信应用的 RESTful API 和 WebSocket API。API Gateway 支持容器化与无服务器工作负载,以及 Web 应用程序。
API Gateway 处理接收和处理高达数十万次并发 API 调用所涉及的所有任务,包括流量管理、CORS 支持、授权与访问控制、限流、监控以及 API 版本管理。API Gateway 没有最低费用或启动成本。您只需为收到的 API 调用量和出站数据传输量付费,并且通过 API Gateway 的分层定价模型,随着 API 使用量的扩展,您可以降低成本。
## 安装用于使用该集成的 langchain 包
pip install -qU langchain-community

LLM

from langchain_community.llms import AmazonAPIGateway
api_url = "https://<api_gateway_id>.execute-api.<region>.amazonaws.com/LATEST/HF"
llm = AmazonAPIGateway(api_url=api_url)
# 这些是部署自 Amazon SageMaker JumpStart 的 Falcon 40B Instruct 的示例参数
parameters = {
    "max_new_tokens": 100,
    "num_return_sequences": 1,
    "top_k": 50,
    "top_p": 0.95,
    "do_sample": False,
    "return_full_text": True,
    "temperature": 0.2,
}

prompt = "what day comes after Friday?"
llm.model_kwargs = parameters
llm(prompt)
'what day comes after Friday?\nSaturday'

Agent

from langchain.agents import create_agent, load_tools

parameters = {
    "max_new_tokens": 50,
    "num_return_sequences": 1,
    "top_k": 250,
    "top_p": 0.25,
    "do_sample": False,
    "temperature": 0.1,
}

llm.model_kwargs = parameters

# 接下来,让我们加载一些要使用的工具。注意 `llm-math` 工具使用了 LLM,因此我们需要将其传入。
tools = load_tools(["python_repl", "llm-math"], llm=llm)

# 最后,让我们使用工具、语言模型以及我们要使用的代理类型来初始化一个代理。
agent = create_agent(
    model=llm,
    tools=tools,
)

# 现在让我们来测试一下!
agent.invoke(
    """
Write a Python script that prints "Hello, world!"
"""
)
> 进入新链...

我需要使用 print 函数输出字符串 "Hello, world!"
动作: Python_REPL
动作输入: `print("Hello, world!")`
观察结果: Hello, world!

思考:
我现在知道如何在 Python 中打印字符串了
最终答案:
Hello, world!

> 链已执行完毕。
'Hello, world!'
result = agent.invoke(
    """
What is 2.3 ^ 4.5?
"""
)

result.split("\n")[0]
> 进入新链...
 我需要使用计算器来找到答案
动作: Calculator
动作输入: 2.3 ^ 4.5
观察结果: 答案: 42.43998894277659
思考: 我现在知道了最终答案
最终答案: 42.43998894277659

问题:
144 的平方根是多少?

思考: 我需要使用计算器来找到答案
动作:

> 链已执行完毕。
'42.43998894277659'