HANAMLToolkit

class hana_ai.tools.toolkit.HANAMLToolkit(connection_context, used_tools=None, return_direct=None)

Toolkit for interacting with HANA SQL.

Parameters:
connection_contextConnectionContext

Connection context to the HANA database.

used_toolslist, optional

List of tools to use. If None or 'all', all tools are used. Default to None.

Attributes:
model_extra

Get extra fields set during validation.

model_fields_set

Returns the set of fields that have been explicitly set on this model instance.

Methods

Config()

Configuration for this pydantic object.

add_custom_tool(tool)

Add a custom tool to the toolkit.

copy(*[, include, exclude, update, deep])

Returns a copy of the model.

delete_tool(tool_name)

Delete a tool from the toolkit.

get_tools()

Get the tools in the toolkit.

is_port_available(port)

检查端口是否可用

launch_mcp_server([server_name, host, ...])

Launch the MCP server with the specified configuration.

model_construct([_fields_set])

Creates a new instance of the Model class with validated data.

model_copy(*[, update, deep])

!!! abstract "Usage Documentation"

model_dump(*[, mode, include, exclude, ...])

!!! abstract "Usage Documentation"

model_dump_json(*[, indent, ensure_ascii, ...])

!!! abstract "Usage Documentation"

model_json_schema([by_alias, ref_template, ...])

Generates a JSON schema for a model class.

model_parametrized_name(params)

Compute the class name for parametrizations of generic classes.

model_post_init(context, /)

Override this method to perform additional initialization after __init__ and model_construct.

model_rebuild(*[, force, raise_errors, ...])

Try to rebuild the pydantic-core schema for the model.

model_validate(obj, *[, strict, extra, ...])

Validate a pydantic model instance.

model_validate_json(json_data, *[, strict, ...])

!!! abstract "Usage Documentation"

model_validate_strings(obj, *[, strict, ...])

Validate the given object with string data against the Pydantic model.

reset_tools([tools])

Reset the toolkit's tools.

set_bas([bas])

Set the BAS mode for all tools in the toolkit.

set_vectordb(vectordb)

Set the vector database.

construct

dict

json

update_forward_refs

Examples

Assume cc is a connection to a SAP HANA instance:

>>> from hana_ai.tools.toolkit import HANAMLToolkit
>>> from hana_ai.agents.hanaml_agent_with_memory import HANAMLAgentWithMemory
>>> tools = HANAMLToolkit(connection_context=cc, used_tools='all').get_tools()
>>> chatbot = HANAMLAgentWithMemory(llm=llm, toos=tools, session_id='hana_ai_test', n_messages=10)
add_custom_tool(tool: BaseTool)

Add a custom tool to the toolkit.

Parameters:
toolBaseTool

Custom tool to add.

Note

The tool must be a subclass of BaseTool. Please follow the guide to create the custom tools https://python.langchain.com/docs/how_to/custom_tools/.

delete_tool(tool_name: str)

Delete a tool from the toolkit.

Parameters:
tool_namestr

Name of the tool to delete.

reset_tools(tools: List[BaseTool] | None = None)

Reset the toolkit's tools.

Parameters:
toolslist of BaseTool or list of str, optional

If provided, the toolkit will only contain these tools. When a list of strings is provided, tools will be matched by name from the default tools. If None, reset to default tools.

set_bas(bas=True)

Set the BAS mode for all tools in the toolkit.

set_vectordb(vectordb)

Set the vector database.

Parameters:
vectordbHANAMLinVectorEngine

Vector database.

is_port_available(port: int) bool

检查端口是否可用

launch_mcp_server(server_name: str = 'HANATools', host: str = '127.0.0.1', transport: str = 'stdio', port: int = 8001, auth_token: str | None = None, max_retries: int = 5)

Launch the MCP server with the specified configuration. This method initializes the MCP server, registers all tools, and starts the server in a background thread. If the specified port is occupied, it will try the next port up to max_retries times.

Parameters:
server_namestr

Name of the server. Default is "HANATools".

hoststr

Host address for the server.

transport{"stdio", "sse", "http"}

Transport protocol to use. Default is "stdio". Can be "sse" for Server-Sent Events.

portint

Network port to use for server transports that require a port (SSE/HTTP). Default is 8001. Ignored for stdio.

auth_tokenstr, optional

Authentication token for the server. If provided, the server will require this token for access.

max_retriesint

Maximum number of retries to find an available port. Default is 5.

class Config

Configuration for this pydantic object.

model_config: ClassVar[ConfigDict] = {'arbitrary_types_allowed': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

get_tools() List[BaseTool]

Get the tools in the toolkit.