Skip to main content

Amazon API Gateway

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 使用量的扩展而降低成本。

LLM (语言模型)​

查看使用示例。

from langchain.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 Deployed 的示例参数
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 load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain.llms import AmazonAPIGateway

api_url = "https://<api_gateway_id>.execute-api.<region>.amazonaws.com/LATEST/HF"
llm = AmazonAPIGateway(api_url=api_url)

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 = initialize_agent(
tools,
llm,
agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True,
)

# 现在让我们来测试一下!
agent.run("""
Write a Python script that prints "Hello, world!"
""")

>>> 'Hello, world!'