Interacting with API
Learn how to use external API integrations with Flowise
The OpenAPI Specification (OAS) defines a standard, language-agnostic interface to HTTP APIs. The goal of this use case is to have the LLM automatically figure out which API to call, while still having a stateful conversation with user.
OpenAPI Chain
In this tutorial, we are going to use Klarna OpenAPI
You can use a JSON to YAML converter and save it as a
.yaml
file, and upload it to OpenAPI Chain, then test by asking some questions. OpenAPI Chain will send the whole specs to LLM, and have the LLM automatically use the correct method and parameters for the API call.
However, if you want to have a normal conversation chat, it is not able to do so. You will see the following error. This is because OpenAPI Chain has the following prompt:
Since we "forced" it to always find the API to answer user query, in the cases of normal conversation that is irrelevant to the OpenAPI, it fails to do so.
Using this method might not work well if you have large OpenAPI spec. This is because we are including all the specifications as part of the message sent to LLM. We then rely on LLM to figure out the correct URL, query parameters, request body, and other necessary parameters needed to answer user query. As you can imagine, if your OpenAPI specs are complicated, there is a higher chance LLM will hallucinates.
Tool Agent + OpenAPI Toolkit
In order to solve the above error, we can use Agent. From the official cookbook by OpenAI: Function calling with an OpenAPI specification, it is recommended to convert each API into a tool itself, instead of feeding all the APIs into LLM as single message. An agent is also capable of having human-like interaction, with the ability to decide which tool to use depending on user's query.
OpenAPI Toolkit will converts each of the API from YAML file into a set of tools. This way, users don't have to create a Custom Tool for each API.
Connect ToolAgent with OpenAPI Toolkit. Here, we upload the YAML spec for OpenAI API. The spec file can be found at the bottom of the page.
Let's try it!
As you can noticed from the chat, the agent is capable of carrying out normal conversation, and use appropriate tool to answer user query. If you are using Analytic Tool, you can see the list of tools we converted from the YAML file:
Conclusion
We've successfully created an agent that can interact with API when necessary, and still be able handle stateful conversations with users. Below are the templates used in this section:
Last updated