Built-In Modules
The current built-in modules are:| Module | Import | Export |
|---|---|---|
| AI | import "AI" | AI.prompt(message := "text") |
| HTTP | import "HTTP" | HTTP.fetch(url := "https://api.example.com") |
import "AI" is shorthand for import "slang:AI". You can also alias built-ins with as.
AI Prompting
AI.prompt generates text. It accepts a required user message plus optional system instructions, FILE attachments, provider/model overrides, and max token settings.
openai and anthropic. If you omit provider, SLang uses the default configured provider. If you omit modelName, the module uses the default model for that provider.
Attachments must be FILE values. Store uploaded files before saving them on an entity; pass either the uploaded file or the stored file to AI.prompt.
When building dynamic AI prompts, use template strings instead of chaining many + operators. This is especially useful when mixing literals, fields, and values accumulated in a loop.
HTTP Fetching
HTTP.fetch makes outbound HTTP or HTTPS calls and returns an object with status, headers, and optional body.
FILE as the top-level body. HTTP.fetch
sends the file bytes unchanged and uses the file MIME type as the request
content-type unless you provide one explicitly.
responseType := "file". The response keeps the same object shape, but
body is a FILE value.
HTTP.fetch behavior:
methoddefaults toGET.- Supported methods are
GET,POST,PUT,DELETE,PATCH,OPTIONS, andHEAD. querymust be a plain object of strings, numbers, booleans, arrays of those primitives,null, orundefined.- Object request bodies are JSON-encoded and get
content-type: application/jsonunless you set a content type yourself. - Top-level
FILErequest bodies are sent as raw bytes and get the file MIME type ascontent-typeunless you set a content type yourself. FILEvalues are not supported inside JSON object or array bodies. Multipart bodies, includingmultipart/related, are not constructed automatically.- JSON responses are parsed into objects; non-JSON responses return text.
- Set
responseType := "file"to return response bytes as aFILEinbody. Store the returned file before saving it on an entity if it must survive after the action.
Local Modules
Local imports use relative paths and only expose symbols declared withexport.
Examples:
import "./helpers"merges exported symbols into the current file.import "./helpers" as Helpersplaces exported symbols underHelpers.export action BuildTitle(title: TEXT): TEXTmakes an action importable.export entity SharedModelmakes an entity importable.
Helpers.BuildTitle(title := title) to be explicit.