Welcome to Caravel
Human-in-the-loop Agentic AI for your OpenAPI specs. Built in asynchronous Python and BAML.
Getting Started
Installation
pip install <name, hopefully caravel-ai>
AI Assistant Speedrun
from caravel.assistant.Assistant import Assistant
from caravel.baml.baml_client.types import Context
from caravel.http.Client import Client
from caravel.parsing.Parser import Parser
BASE_URL="env" # will be replaced with the dotenv
assistant: Assistant = Assistant(
# finish this!
client=Client(
base_url=BASE_URL,
auth_headers={}, # will be filled w auth headers
allowed_methods=['get', 'post', 'patch', 'delete']
),
spec_file="samsara.json"
) # Assistant
output_msg: str = "How can I help you today?"
while True:
print("----------------------------------------")
print("Assistant:")
print(output_msg)
print("----------------------------------------")
user_prompt = input("$ ")
output_msg = await assistant.assistant_call(user_prompt)
Overview
Caravel projects have four main parts:
- The Parser The Parser is a class that provides utilities for operating on OpenAPI specification files. The Parser is used to convert the OpenAPI specifications into formats that make it workable with the Client and the Runner.
- The Runner The Runner is a class consisting of methods that perform legwork such as constructing API requests, checking the schema of requests, etc.
- The Client The Client is a class that is used to make HTTP requests to the API. Client functions recieve their parameters from the runner and return their results in JSON format or in human/LLM-readable text. In addition to the standard HTTP methods, the Client also allows users to add their own custom methods to the client.
- The CaravelRegistry The CaravelRegistry is a function registry class. This registry is what allows developers to call Caravel functions from their assistant. The CaravelRegistry is a singleton class.
Metadata
Release files for caravel-ai 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| caravel_ai-0.0.3.tar.gz | 29.7 kB | Without provenance | Details for caravel_ai-0.0.3.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| caravel_ai-0.0.3-py3-none-any.whl | Python 3 | none | any | Details for caravel_ai-0.0.3-py3-none-any.whl |
Total release size: 68.9 kB
Release files / caravel_ai-0.0.3.tar.gz
| Download URL | caravel_ai-0.0.3.tar.gz |
|---|---|
| Size | 29.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
a65db1bef4696c990647171350a90c4bd2d5f0225f6278e035eb476702e644e2
|
|
BLAKE2b-256 checksum How to use checksums |
88d520b24a3ed92962e979f26e1c00731ee76a5fa72a902cbdb6e39e3b757c0a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.11.11 Linux/5.15.167.4-microsoft-standard-WSL2
|
Release files / caravel_ai-0.0.3-py3-none-any.whl
| Download URL | caravel_ai-0.0.3-py3-none-any.whl |
|---|---|
| Size | 39.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
eeacc70f9a1f22560098451fb1ab22f85d7dd1657fde7fc836d39adb46e287f1
|
|
BLAKE2b-256 checksum How to use checksums |
9b2ec1661a36276835aba83e97edd93222a391e20a2ccdbde1a421ca55843fb1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/2.1.1 CPython/3.11.11 Linux/5.15.167.4-microsoft-standard-WSL2
|
Security for caravel-ai 0.0.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.