← 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.)