| ← Resource Abstraction Model | User-defined Resources → |
|---|---|
Standard System Resources¶
(This document is a placeholder. It will describe the set of standard, built-in resources provided with Dana, such as those for LLM interaction, file system access, network requests, etc. For each resource, it should outline its purpose, key methods/capabilities, and example configuration.)
Planned Standard Resources:¶
LLMResource(or specific variants likeOpenAIResource,AnthropicResource)- Purpose: Interface with Large Language Models.
- Capabilities: Text generation, chat completion, embeddings, etc.
- Key Methods:
generate_text(),chat(),get_embedding(). - Configuration: API keys, model names, default parameters (temperature, max tokens).
-
Interaction with IPV pattern, especially for
reason()like functions. -
FileSystemResource - Purpose: Interact with the local file system in a controlled manner.
- Capabilities: Read file, write file, list directory, check existence.
- Key Methods:
read(),write(),list_dir(),exists(). - Configuration: Base path restrictions (sandboxing), allowed operations.
-
Security: Emphasize safe and restricted access.
-
NetworkResource(orHTTPResource) - Purpose: Make HTTP requests to external services/APIs.
- Capabilities: GET, POST, PUT, DELETE requests.
- Key Methods:
get(),post(),request(). - Configuration: Allowed domains/IPs, timeout settings, header management.
-
Security: Considerations for SSRF, data exposure.
-
VectorDBResource(Conceptual - or specific variants for Pinecone, Weaviate, etc.) - Purpose: Interact with vector databases.
- Capabilities: Store vectors, query similar vectors, manage collections.
- Key Methods:
upsert(),query(),delete(). -
Configuration: Connection details, API keys, collection names.
-
SQLDatabaseResource(Conceptual - or specific variants for PostgreSQL, SQLite, etc.) - Purpose: Execute SQL queries against relational databases.
- Capabilities: Execute select, insert, update, delete queries; manage transactions.
- Key Methods:
execute_query(),execute_statement(),begin_transaction(),commit(),rollback(). -
Configuration: Connection string, credentials.
-
ToolResource(orFunctionCallingResource) - Purpose: A generic way to expose a collection of pre-defined Python tools or functions to Dana, perhaps with schema definition for LLM-based function calling.
- Capabilities: List available tools, execute a specific tool by name with arguments.
- Key Methods:
list_tools(),call_tool(name, **kwargs). -
Configuration: How tools are registered and described.
-
LoggingResource(Implicit, or an explicit way to configure system logging) - Purpose: Controls how
log()statements and system messages are handled. - Capabilities: Set log level, direct logs to different outputs (console, file, external service).
- Configuration: Log level, format, output handlers.
(This list will evolve. Each resource will eventually have its own sub-document or detailed section here.)