Data · dataset · 2024
Replication Data for: Advanced System Integration: Analyzing OpenAPI Chunking for Retrieval-Augmented Generation
Listed in DaRUS
Integrating multiple (sub-)systems is essential to create advanced Information Systems (ISs).
Description
Difficulties mainly arise when integrating dynamic environments across the IS lifecycle, e.g., services not yet existent at design time. A traditional approach is a registry that provides the API documentation of the systems’ endpoints.
Large Language Models (LLMs) have shown to be capable of automatically creating system integrations (e.g., as service composition) based on this documentation but require concise input due to input token limitations, especially regarding comprehensive API descriptions. Currently, it is unknown how best to preprocess these API descriptions. Within this work, we (i) analyze the usage of Retrieval Augmented Generation (RAG) for endpoint discovery and the chunking, i.e., preprocessing, of state-of-practice OpenAPIs to reduce the input token length while preserving the most relevant information.
Read the rest (5 more)
To further reduce the input token length for the composition prompt and improve endpoint retrieval, we propose (ii) a Discovery Agent that only receives a summary of the most relevant endpoints and retrieves specification details on demand. We evaluate RAG for endpoint discovery using the RestBench benchmark, first, for the different chunking possibilities and parameters measuring the endpoint retrieval recall, precision, and F1 score.
Then, we assess the Discovery Agent using the same test set. With our prototype, we demonstrate how to successfully employ RAG for endpoint discovery to reduce token count. While revealing high values for recall, precision, and F1, further research is necessary to retrieve all requisite endpoints.
Our experiments show that for preprocessing, LLM-based and format-specific approaches outperform naïve chunking methods. Relying on an agent further enhances these results as the agent splits the tasks into multiple fine granular subtasks, improving the overall RAG performance in the token count, precision, and F1 score. Content: code.zip: Python source code to perform the experiments. evaluate.py: Script to execute the experiments (Uncomment lines to select the embedding model). socrag/*: Source code for the RAG. benchmark/*: RestBench specification. results.zip: Results of the RAG experiments (in the folder /results/data/ inside the zip file).
Experiment results for the RAG: results_{embedding_model}_{top-k}.json. Experiment results for the Discovery Agent: results_{embedding_model}_{agent}_{refinement}_{llm}.json. FAISS store (intermediate data required for exact reproduction of results; one folder for each embedding model): bge_small, nvidia and oai.
Intermediate data of the LLM-based refinement methods required for the exact reproduction of results: *_parser.json.
Links
Where it is published
- Dataverse dataset page darus.uni-stuttgart.de/dataset.xhtml?persistentId=doi%3A10.18419%2FDARUS-4605 ↗
landing page · from darus uni stuttgart de
- DOI doi.org/10.18419/darus-4605 ↗
DOI / persistent id · from darus uni stuttgart de
Catalogue records · 1
- Dataverse API darus.uni-stuttgart.de/api/datasets/:persistentId/?persistentId=doi%3A10.18419%2FDARU… ↗
metadata API · from darus uni stuttgart de
Topics
- Stated by source
- Computer and Information Science
- From keywords
- Humanities
- Inferred from text
- Distributed computing and systems software 71%
Provenance · 1 source records, 9 field assertions
| Source | Key | Last seen | Raw |
|---|---|---|---|
| DaRUS | doi:10.18419/DARUS-4605 | 9 d ago | JSON v1 |
| Field | Assertion | Extractor | Evidence |
|---|---|---|---|
| concepts[field].anzsrc:group:4606 | enrichment · darus uni stuttgart de | taxonomy-embedding@1.1.0 | title+keywords+description (71%) |
| concepts[field].dataverse_subject:computer-and-information-science | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | /subjects |
| concepts[field].local:field:humanities | mapping · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | /subjects |
| created_date | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | |
| description | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | /description |
| publication_date | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | |
| title | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | /name |
| updated_date | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 | |
| version_label | source · darus uni stuttgart de | connector:darus_uni_stuttgart_de@1.0.0 |