netdata-llm-agent


Namenetdata-llm-agent JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/andrewm4894/netdata-llm-agent
SummaryA language model agent that interacts with Netdata API
upload_time2025-02-02 22:49:28
maintainerNone
docs_urlNone
authorAndrew Maguire
requires_python>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements aiohappyeyeballs aiohttp aiosignal altair annotated-types anthropic anyio attrs beautifulsoup4 blinker cachetools certifi charset-normalizer click colorama dataclasses-json defusedxml distro frozenlist gitdb gitpython greenlet h11 httpcore httpx httpx-sse idna jinja2 jiter jsonpatch jsonpointer jsonschema jsonschema-specifications langchain langchain-anthropic langchain-community langchain-core langchain-ollama langchain-openai langchain-text-splitters langgraph langgraph-checkpoint langgraph-sdk langsmith markdown-it-py markdownify markupsafe marshmallow mdurl msgpack multidict mypy-extensions narwhals numpy ollama openai orjson packaging pandas pillow propcache protobuf pyarrow pydantic pydantic-core pydantic-settings pydeck pygments python-dateutil python-dotenv pytz pyyaml referencing regex requests requests-toolbelt rich rpds-py six smmap sniffio soupsieve sqlalchemy streamlit tenacity tiktoken toml tornado tqdm typing-extensions typing-inspect tzdata urllib3 watchdog yarl zstandard
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Netdata LLM Agent

[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/andrewm4894/netdata-llm-agent)

An LLM agent for chatting with your netdata server's.

- [App](#app-example) - A little streamlit app that uses the agent to chat with your netdata server's.
- [CLI](#cli-example)- A very simplistic cli tool that uses the agent to chat with your netdata server's on command line.
- [Code](#code-example) - A code example of how to chat with the agent in python.

See [example notebook](./example.ipynb) for more updated examples.

Tools the [agent](./netdata_llm_agent.py) has access to ([source](./netdata_llm_tools.py)):
- `get_info(netdata_host_url)` : Get Netdata info about a node.
- `get_charts(netdata_host_url, search_term)` : Get Netdata charts, optionally filter by search_term.
- `get_chart_info(netdata_host_url, chart)` : Get Netdata chart info for a specific chart.
- `get_chart_data(netdata_host_url, chart, after, before, points, options, df_freq)` : Get Netdata chart data for a specific chart. Optionally filter by after, before, points, options, and df_freq. options can be used to add optional flags for example 'anomaly-bit' will return anomaly rates rather than raw metric values.
- `get_alarms(netdata_host_url, all, active)` : Get Netdata alarms. all=True to get all alarms, active=True to get active alarms (warning or critical).
- `get_current_metrics(netdata_host_url, search_term)` : Get current metrics values for all charts, no time range, just the current values for all dimensions on all charts. Optionally filter by search_term on chart name.
- `get_anomaly_rates(netdata_host_url, after, before, search_term)` : Get anomaly rates for a specific time frame for all charts or optionally filter by search_term on chart name.
- `get_netdata_docs_sitemap(search_term)` : Get Netdata docs sitemap to list available Netdata documentation pages. Use search_term to filter by a specific term.
- `get_netdata_docs_page(url)` : Get Netdata docs page content for a specific docs page url on learn.netdata.cloud.

## TODO

Some things i'd like to do:

- [ ] make pip installable.
- [ ] probably optimize langchain implementation more.
- [ ] add more advanced langchain functionality around memory etc.
- [x] make cli tool for chatting with agent.
- [ ] dockerize it all.
- [ ] iterate and polish streamlit app.
- [x] add anthropic support.
- [ ] optimize and expand custom netdata tool usage and structure etc.
- [ ] add more examples.
- [x] add ability to use local models using ollama.
- [ ] add deeper context and knowledge of netdata and its tools.

## App Example

A little streamlit app that uses the agent to chat with your netdata server's ([source](./netdata_llm_app.py)).

```bash
make app
```

or

```python
streamlit run app.py
```

![App Example](./static/app.png)

## CLI Example

A very simplistic cli tool that uses the agent to chat with your netdata server's on command line ([source](./netdata_llm_cli.py)).

```base
make cli
```

```markdown
Welcome to the Netdata LLM Agent CLI!
Type your query about Netdata (e.g., charts, alarms, metrics) and press Enter.
Type 'exit' or 'quit' to end the session.

You: how do the mysql metrics look on london?
Agent: In the London Netdata instance, there are numerous MySQL-related metrics available for monitoring. Here's a comprehensive list:

1. User Process Metrics:
   - `user.mysql_cpu_utilization`: CPU utilization.
   - `user.mysql_mem_private_usage`: Memory usage without shared.
   - `user.mysql_cpu_context_switches`: CPU context switches.
   - `user.mysql_mem_usage`: Memory RSS usage.
   - `user.mysql_vmem_usage`: Virtual memory size.
   - `user.mysql_mem_page_faults`: Memory page faults.
   - `user.mysql_swap_usage`: Swap usage.
   - `user.mysql_disk_physical_io`: Disk physical IO.
   - `user.mysql_disk_logical_io`: Disk logical IO.
   - `user.mysql_processes`: Number of processes.
   - `user.mysql_threads`: Number of threads.
   - `user.mysql_fds_open_limit`: Open file descriptors limit.
   - `user.mysql_fds_open`: Open files descriptors.
   - `user.mysql_uptime`: Uptime.

2. User Group Process Metrics (Similar metrics for group processes):
   - CPU, memory, IO, and process-related metrics.

3. General MySQL Metrics:
   - `mysql_local.net`: Bandwidth.
   - `mysql_local.queries`: Queries per second.
   - `mysql_local.queries_type`: Types of queries.
   - `mysql_local.handlers`: Handlers.
   - `mysql_local.table_locks`: Table locks.
   - `mysql_local.join_issues`: Join issues.
   - `mysql_local.sort_issues`: Sort issues.
   - `mysql_local.tmp`: Temporary operations.
   - `mysql_local.connections`: Total connections.
   - `mysql_local.connections_active`: Active connections.
   - `mysql_local.threads`: Number of threads.
   - `mysql_local.thread_cache_misses`: Thread cache misses.
   - `mysql_local.innodb_io`: InnoDB I/O bandwidth.
   - `mysql_local.innodb_io_ops`: InnoDB I/O operations.
   - `mysql_local.innodb_io_pending_ops`: InnoDB pending I/O operations.
   - `mysql_local.innodb_log`: InnoDB log operations.
   - `mysql_local.innodb_cur_row_lock`: InnoDB current row locks.
   - `mysql_local.innodb_rows`: InnoDB row operations.
   - Other InnoDB metrics related to buffer pool and page requests.
   - `mysql_local.files`: Open files.
   - `mysql_local.files_rate`: Opened files rate.
   - `mysql_local.connection_errors`: Connection errors.
   - `mysql_local.opened_tables`: Number of opened tables.
   - `mysql_local.process_list_queries_count`: Queries count.
   - `mysql_local.innodb_deadlocks`: InnoDB deadlocks.
   - QCache and MyISAM-related metrics.

These metrics provide a detailed view of MySQL performance and can be used to monitor the database server's status, resource usage, and performance trends. If you'd like more detailed info on any specific chart, feel free to ask!

You: how does performance generaly look?
Agent: The current performance metrics for MySQL on the London Netdata instance indicate relatively stable and low resource usage. Here's a summary of key metrics:

### CPU and Memory Utilization
- **CPU Utilization**: Very low at around 0.61% for system usage, with no user CPU usage.
- **Memory Usage**:
  - Private memory usage is about 226 MiB.
  - RSS memory usage is around 234.95 MiB.
  - Virtual memory usage is approximately 1174 MiB.

### Disk I/O
- **Physical I/O**: Minimal, with writes noted at around -24 KiB/s.
- **Logical I/O**: Slightly more activity with reads at 8.46 KiB/s and writes at -32.18 KiB/s.

### Network and Query Activity
- **Network Bandwidth**: Inbound traffic is around 4.76 kb/s, while outbound traffic is -179.86 kb/s.
- **Queries**:
  - Handling around 6 queries/second with a mix of select operations (1 query/second) and some sorting and joining activities.

### Processes and Threads
- **Processes**: Running 1 MySQL process with 9 threads active.
- **Connections**: 1 active connection with a limit of 151.

### Cache and Buffers
- **Buffer Pool**: Utilized pages are minor with a total of 8064 pages, suggesting ample buffer pool size compared to usage.
- **QCache**: Limited operation, with free memory at 0.98 MiB.

### Miscellaneous
- **Swap Usage**: Not utilizing any swap memory.
- **InnoDB Deadlocks**: No deadlocks detected.

Overall, the system exhibits nominal activity levels indicating a stable and lightly loaded MySQL server. If there's a need for deeper analysis on specific metrics or additional monitoring, feel free to ask for more details.

You: thats great thanks! love you x
Agent: You're welcome! I'm glad I could help. If you have any more questions or need assistance in the future, feel free to reach out. Have a fantastic day! 😊
```

## Code Example

```python
from netdata_llm_agent import NetdataLLMAgent

# list of netdata urls to interact with
netdata_urls = [
    'https://localhost:19999/',
    'https://london3.my-netdata.io/',
    'https://bangalore.my-netdata.io/',
    'https://newyork.my-netdata.io/',
    'https://sanfrancisco.my-netdata.io/',
    'https://singapore.my-netdata.io/',
    'https://toronto.my-netdata.io/',
]

# create agent
agent = NetdataLLMAgent(netdata_urls, model='gpt-4o-mini')
# create agent using anthropic
# agent = NetdataLLMAgent(netdata_urls, model='claude-3-5-sonnet-20241022', platform='anthropic')
# create agent using ollama
# agent = NetdataLLMAgent(netdata_urls, model='llama3.1', platform='ollama')

# chat with the agent
agent.chat('How much disk space is on london?', verbose=True, no_print=False)
```

Response:

```markdown
================================ Human Message =================================

How much disk space is on london?
================================== Ai Message ==================================
Tool Calls:
  get_charts (call_Ail79vhFSkyZeCBCleqC5pTE)
 Call ID: call_Ail79vhFSkyZeCBCleqC5pTE
  Args:
    netdata_host_url: https://london3.my-netdata.io/
================================= Tool Message =================================
Name: get_charts

[
  [
    "system.idlejitter",
    "CPU Idle Jitter (system.idlejitter)"
  ],
  ...(lots of charts - removed for the readme)
  [
    "netdata.statsd_events",
    "Events processed by the netdata statsd server (netdata.statsd_events)"
  ],
  ...(lots of charts - removed for the readme)
]
================================== Ai Message ==================================
Tool Calls:
  get_chart_data (call_ExvOtkjnmJMnGQVjP2wOaeE7)
 Call ID: call_ExvOtkjnmJMnGQVjP2wOaeE7
  Args:
    netdata_host_url: https://london3.my-netdata.io/
    chart: disk_space./
================================= Tool Message =================================
Name: get_chart_data

    avail     used  reserved for root
112.80312 38.20478           6.435379
112.80304 38.20486           6.435379
112.80283 38.20507           6.435379
112.80276 38.20515           6.435379
112.80270 38.20520           6.435379
112.80269 38.20521           6.435379
112.80264 38.20527           6.435379
112.80259 38.20532           6.435379
112.80248 38.20542           6.435379
112.80241 38.20549           6.435379
112.80232 38.20558           6.435379
112.80225 38.20566           6.435379
================================== Ai Message ==================================

On the London server, the current disk space usage is as follows:

- **Available Disk Space:** Approximately 112.80 GB
- **Used Disk Space:** Approximately 38.20 GB
- **Reserved for root:** Approximately 6.44 GB

Would you like to know anything else?
================================== Ai Message ==================================

On the London server, the current disk space usage is as follows:

- **Available Disk Space:** Approximately 112.80 GB
- **Used Disk Space:** Approximately 38.20 GB
- **Reserved for root:** Approximately 6.44 GB

Would you like to know anything else?

```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/andrewm4894/netdata-llm-agent",
    "name": "netdata-llm-agent",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Andrew Maguire",
    "author_email": "andrewm4894@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/bf/b9/7568c8eab910085e521029a8f56af9dbb64224ceafa806795e6fb43ec541/netdata_llm_agent-0.2.0.tar.gz",
    "platform": null,
    "description": "# Netdata LLM Agent\r\n\r\n[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/andrewm4894/netdata-llm-agent)\r\n\r\nAn LLM agent for chatting with your netdata server's.\r\n\r\n- [App](#app-example) - A little streamlit app that uses the agent to chat with your netdata server's.\r\n- [CLI](#cli-example)- A very simplistic cli tool that uses the agent to chat with your netdata server's on command line.\r\n- [Code](#code-example) - A code example of how to chat with the agent in python.\r\n\r\nSee [example notebook](./example.ipynb) for more updated examples.\r\n\r\nTools the [agent](./netdata_llm_agent.py) has access to ([source](./netdata_llm_tools.py)):\r\n- `get_info(netdata_host_url)` : Get Netdata info about a node.\r\n- `get_charts(netdata_host_url, search_term)` : Get Netdata charts, optionally filter by search_term.\r\n- `get_chart_info(netdata_host_url, chart)` : Get Netdata chart info for a specific chart.\r\n- `get_chart_data(netdata_host_url, chart, after, before, points, options, df_freq)` : Get Netdata chart data for a specific chart. Optionally filter by after, before, points, options, and df_freq. options can be used to add optional flags for example 'anomaly-bit' will return anomaly rates rather than raw metric values.\r\n- `get_alarms(netdata_host_url, all, active)` : Get Netdata alarms. all=True to get all alarms, active=True to get active alarms (warning or critical).\r\n- `get_current_metrics(netdata_host_url, search_term)` : Get current metrics values for all charts, no time range, just the current values for all dimensions on all charts. Optionally filter by search_term on chart name.\r\n- `get_anomaly_rates(netdata_host_url, after, before, search_term)` : Get anomaly rates for a specific time frame for all charts or optionally filter by search_term on chart name.\r\n- `get_netdata_docs_sitemap(search_term)` : Get Netdata docs sitemap to list available Netdata documentation pages. Use search_term to filter by a specific term.\r\n- `get_netdata_docs_page(url)` : Get Netdata docs page content for a specific docs page url on learn.netdata.cloud.\r\n\r\n## TODO\r\n\r\nSome things i'd like to do:\r\n\r\n- [ ] make pip installable.\r\n- [ ] probably optimize langchain implementation more.\r\n- [ ] add more advanced langchain functionality around memory etc.\r\n- [x] make cli tool for chatting with agent.\r\n- [ ] dockerize it all.\r\n- [ ] iterate and polish streamlit app.\r\n- [x] add anthropic support.\r\n- [ ] optimize and expand custom netdata tool usage and structure etc.\r\n- [ ] add more examples.\r\n- [x] add ability to use local models using ollama.\r\n- [ ] add deeper context and knowledge of netdata and its tools.\r\n\r\n## App Example\r\n\r\nA little streamlit app that uses the agent to chat with your netdata server's ([source](./netdata_llm_app.py)).\r\n\r\n```bash\r\nmake app\r\n```\r\n\r\nor\r\n\r\n```python\r\nstreamlit run app.py\r\n```\r\n\r\n![App Example](./static/app.png)\r\n\r\n## CLI Example\r\n\r\nA very simplistic cli tool that uses the agent to chat with your netdata server's on command line ([source](./netdata_llm_cli.py)).\r\n\r\n```base\r\nmake cli\r\n```\r\n\r\n```markdown\r\nWelcome to the Netdata LLM Agent CLI!\r\nType your query about Netdata (e.g., charts, alarms, metrics) and press Enter.\r\nType 'exit' or 'quit' to end the session.\r\n\r\nYou: how do the mysql metrics look on london?\r\nAgent: In the London Netdata instance, there are numerous MySQL-related metrics available for monitoring. Here's a comprehensive list:\r\n\r\n1. User Process Metrics:\r\n   - `user.mysql_cpu_utilization`: CPU utilization.\r\n   - `user.mysql_mem_private_usage`: Memory usage without shared.\r\n   - `user.mysql_cpu_context_switches`: CPU context switches.\r\n   - `user.mysql_mem_usage`: Memory RSS usage.\r\n   - `user.mysql_vmem_usage`: Virtual memory size.\r\n   - `user.mysql_mem_page_faults`: Memory page faults.\r\n   - `user.mysql_swap_usage`: Swap usage.\r\n   - `user.mysql_disk_physical_io`: Disk physical IO.\r\n   - `user.mysql_disk_logical_io`: Disk logical IO.\r\n   - `user.mysql_processes`: Number of processes.\r\n   - `user.mysql_threads`: Number of threads.\r\n   - `user.mysql_fds_open_limit`: Open file descriptors limit.\r\n   - `user.mysql_fds_open`: Open files descriptors.\r\n   - `user.mysql_uptime`: Uptime.\r\n\r\n2. User Group Process Metrics (Similar metrics for group processes):\r\n   - CPU, memory, IO, and process-related metrics.\r\n\r\n3. General MySQL Metrics:\r\n   - `mysql_local.net`: Bandwidth.\r\n   - `mysql_local.queries`: Queries per second.\r\n   - `mysql_local.queries_type`: Types of queries.\r\n   - `mysql_local.handlers`: Handlers.\r\n   - `mysql_local.table_locks`: Table locks.\r\n   - `mysql_local.join_issues`: Join issues.\r\n   - `mysql_local.sort_issues`: Sort issues.\r\n   - `mysql_local.tmp`: Temporary operations.\r\n   - `mysql_local.connections`: Total connections.\r\n   - `mysql_local.connections_active`: Active connections.\r\n   - `mysql_local.threads`: Number of threads.\r\n   - `mysql_local.thread_cache_misses`: Thread cache misses.\r\n   - `mysql_local.innodb_io`: InnoDB I/O bandwidth.\r\n   - `mysql_local.innodb_io_ops`: InnoDB I/O operations.\r\n   - `mysql_local.innodb_io_pending_ops`: InnoDB pending I/O operations.\r\n   - `mysql_local.innodb_log`: InnoDB log operations.\r\n   - `mysql_local.innodb_cur_row_lock`: InnoDB current row locks.\r\n   - `mysql_local.innodb_rows`: InnoDB row operations.\r\n   - Other InnoDB metrics related to buffer pool and page requests.\r\n   - `mysql_local.files`: Open files.\r\n   - `mysql_local.files_rate`: Opened files rate.\r\n   - `mysql_local.connection_errors`: Connection errors.\r\n   - `mysql_local.opened_tables`: Number of opened tables.\r\n   - `mysql_local.process_list_queries_count`: Queries count.\r\n   - `mysql_local.innodb_deadlocks`: InnoDB deadlocks.\r\n   - QCache and MyISAM-related metrics.\r\n\r\nThese metrics provide a detailed view of MySQL performance and can be used to monitor the database server's status, resource usage, and performance trends. If you'd like more detailed info on any specific chart, feel free to ask!\r\n\r\nYou: how does performance generaly look?\r\nAgent: The current performance metrics for MySQL on the London Netdata instance indicate relatively stable and low resource usage. Here's a summary of key metrics:\r\n\r\n### CPU and Memory Utilization\r\n- **CPU Utilization**: Very low at around 0.61% for system usage, with no user CPU usage.\r\n- **Memory Usage**:\r\n  - Private memory usage is about 226 MiB.\r\n  - RSS memory usage is around 234.95 MiB.\r\n  - Virtual memory usage is approximately 1174 MiB.\r\n\r\n### Disk I/O\r\n- **Physical I/O**: Minimal, with writes noted at around -24 KiB/s.\r\n- **Logical I/O**: Slightly more activity with reads at 8.46 KiB/s and writes at -32.18 KiB/s.\r\n\r\n### Network and Query Activity\r\n- **Network Bandwidth**: Inbound traffic is around 4.76 kb/s, while outbound traffic is -179.86 kb/s.\r\n- **Queries**:\r\n  - Handling around 6 queries/second with a mix of select operations (1 query/second) and some sorting and joining activities.\r\n\r\n### Processes and Threads\r\n- **Processes**: Running 1 MySQL process with 9 threads active.\r\n- **Connections**: 1 active connection with a limit of 151.\r\n\r\n### Cache and Buffers\r\n- **Buffer Pool**: Utilized pages are minor with a total of 8064 pages, suggesting ample buffer pool size compared to usage.\r\n- **QCache**: Limited operation, with free memory at 0.98 MiB.\r\n\r\n### Miscellaneous\r\n- **Swap Usage**: Not utilizing any swap memory.\r\n- **InnoDB Deadlocks**: No deadlocks detected.\r\n\r\nOverall, the system exhibits nominal activity levels indicating a stable and lightly loaded MySQL server. If there's a need for deeper analysis on specific metrics or additional monitoring, feel free to ask for more details.\r\n\r\nYou: thats great thanks! love you x\r\nAgent: You're welcome! I'm glad I could help. If you have any more questions or need assistance in the future, feel free to reach out. Have a fantastic day! \ud83d\ude0a\r\n```\r\n\r\n## Code Example\r\n\r\n```python\r\nfrom netdata_llm_agent import NetdataLLMAgent\r\n\r\n# list of netdata urls to interact with\r\nnetdata_urls = [\r\n    'https://localhost:19999/',\r\n    'https://london3.my-netdata.io/',\r\n    'https://bangalore.my-netdata.io/',\r\n    'https://newyork.my-netdata.io/',\r\n    'https://sanfrancisco.my-netdata.io/',\r\n    'https://singapore.my-netdata.io/',\r\n    'https://toronto.my-netdata.io/',\r\n]\r\n\r\n# create agent\r\nagent = NetdataLLMAgent(netdata_urls, model='gpt-4o-mini')\r\n# create agent using anthropic\r\n# agent = NetdataLLMAgent(netdata_urls, model='claude-3-5-sonnet-20241022', platform='anthropic')\r\n# create agent using ollama\r\n# agent = NetdataLLMAgent(netdata_urls, model='llama3.1', platform='ollama')\r\n\r\n# chat with the agent\r\nagent.chat('How much disk space is on london?', verbose=True, no_print=False)\r\n```\r\n\r\nResponse:\r\n\r\n```markdown\r\n================================\u001b[1m Human Message \u001b[0m=================================\r\n\r\nHow much disk space is on london?\r\n==================================\u001b[1m Ai Message \u001b[0m==================================\r\nTool Calls:\r\n  get_charts (call_Ail79vhFSkyZeCBCleqC5pTE)\r\n Call ID: call_Ail79vhFSkyZeCBCleqC5pTE\r\n  Args:\r\n    netdata_host_url: https://london3.my-netdata.io/\r\n=================================\u001b[1m Tool Message \u001b[0m=================================\r\nName: get_charts\r\n\r\n[\r\n  [\r\n    \"system.idlejitter\",\r\n    \"CPU Idle Jitter (system.idlejitter)\"\r\n  ],\r\n  ...(lots of charts - removed for the readme)\r\n  [\r\n    \"netdata.statsd_events\",\r\n    \"Events processed by the netdata statsd server (netdata.statsd_events)\"\r\n  ],\r\n  ...(lots of charts - removed for the readme)\r\n]\r\n==================================\u001b[1m Ai Message \u001b[0m==================================\r\nTool Calls:\r\n  get_chart_data (call_ExvOtkjnmJMnGQVjP2wOaeE7)\r\n Call ID: call_ExvOtkjnmJMnGQVjP2wOaeE7\r\n  Args:\r\n    netdata_host_url: https://london3.my-netdata.io/\r\n    chart: disk_space./\r\n=================================\u001b[1m Tool Message \u001b[0m=================================\r\nName: get_chart_data\r\n\r\n    avail     used  reserved for root\r\n112.80312 38.20478           6.435379\r\n112.80304 38.20486           6.435379\r\n112.80283 38.20507           6.435379\r\n112.80276 38.20515           6.435379\r\n112.80270 38.20520           6.435379\r\n112.80269 38.20521           6.435379\r\n112.80264 38.20527           6.435379\r\n112.80259 38.20532           6.435379\r\n112.80248 38.20542           6.435379\r\n112.80241 38.20549           6.435379\r\n112.80232 38.20558           6.435379\r\n112.80225 38.20566           6.435379\r\n==================================\u001b[1m Ai Message \u001b[0m==================================\r\n\r\nOn the London server, the current disk space usage is as follows:\r\n\r\n- **Available Disk Space:** Approximately 112.80 GB\r\n- **Used Disk Space:** Approximately 38.20 GB\r\n- **Reserved for root:** Approximately 6.44 GB\r\n\r\nWould you like to know anything else?\r\n==================================\u001b[1m Ai Message \u001b[0m==================================\r\n\r\nOn the London server, the current disk space usage is as follows:\r\n\r\n- **Available Disk Space:** Approximately 112.80 GB\r\n- **Used Disk Space:** Approximately 38.20 GB\r\n- **Reserved for root:** Approximately 6.44 GB\r\n\r\nWould you like to know anything else?\r\n\r\n```\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A language model agent that interacts with Netdata API",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/andrewm4894/netdata-llm-agent"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6c2bffb4bd96a3d35288441d1123703ad230497f708ec5af3301f244e12b6a28",
                "md5": "7ce3aed2b77f2d23c04558ed97bb526a",
                "sha256": "adbc412d174d5c79e91ecd39ecb3d23c51cbfc8740794c825e0ded6f9630a7b9"
            },
            "downloads": -1,
            "filename": "netdata_llm_agent-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "7ce3aed2b77f2d23c04558ed97bb526a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14385,
            "upload_time": "2025-02-02T22:49:26",
            "upload_time_iso_8601": "2025-02-02T22:49:26.165070Z",
            "url": "https://files.pythonhosted.org/packages/6c/2b/ffb4bd96a3d35288441d1123703ad230497f708ec5af3301f244e12b6a28/netdata_llm_agent-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bfb97568c8eab910085e521029a8f56af9dbb64224ceafa806795e6fb43ec541",
                "md5": "68c9f88f8a95aa91c45aec5e3827c194",
                "sha256": "5e052d22117f47543d791f8b996a114c291cdab2f502fd6cf559b641dda57a23"
            },
            "downloads": -1,
            "filename": "netdata_llm_agent-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "68c9f88f8a95aa91c45aec5e3827c194",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 454734,
            "upload_time": "2025-02-02T22:49:28",
            "upload_time_iso_8601": "2025-02-02T22:49:28.461466Z",
            "url": "https://files.pythonhosted.org/packages/bf/b9/7568c8eab910085e521029a8f56af9dbb64224ceafa806795e6fb43ec541/netdata_llm_agent-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-02 22:49:28",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "andrewm4894",
    "github_project": "netdata-llm-agent",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "aiohappyeyeballs",
            "specs": [
                [
                    "==",
                    "2.4.4"
                ]
            ]
        },
        {
            "name": "aiohttp",
            "specs": [
                [
                    "==",
                    "3.11.11"
                ]
            ]
        },
        {
            "name": "aiosignal",
            "specs": [
                [
                    "==",
                    "1.3.2"
                ]
            ]
        },
        {
            "name": "altair",
            "specs": [
                [
                    "==",
                    "5.5.0"
                ]
            ]
        },
        {
            "name": "annotated-types",
            "specs": [
                [
                    "==",
                    "0.7.0"
                ]
            ]
        },
        {
            "name": "anthropic",
            "specs": [
                [
                    "==",
                    "0.45.2"
                ]
            ]
        },
        {
            "name": "anyio",
            "specs": [
                [
                    "==",
                    "4.8.0"
                ]
            ]
        },
        {
            "name": "attrs",
            "specs": [
                [
                    "==",
                    "25.1.0"
                ]
            ]
        },
        {
            "name": "beautifulsoup4",
            "specs": [
                [
                    "==",
                    "4.12.3"
                ]
            ]
        },
        {
            "name": "blinker",
            "specs": [
                [
                    "==",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "cachetools",
            "specs": [
                [
                    "==",
                    "5.5.1"
                ]
            ]
        },
        {
            "name": "certifi",
            "specs": [
                [
                    "==",
                    "2025.1.31"
                ]
            ]
        },
        {
            "name": "charset-normalizer",
            "specs": [
                [
                    "==",
                    "3.4.1"
                ]
            ]
        },
        {
            "name": "click",
            "specs": [
                [
                    "==",
                    "8.1.8"
                ]
            ]
        },
        {
            "name": "colorama",
            "specs": [
                [
                    "==",
                    "0.4.6"
                ]
            ]
        },
        {
            "name": "dataclasses-json",
            "specs": [
                [
                    "==",
                    "0.6.7"
                ]
            ]
        },
        {
            "name": "defusedxml",
            "specs": [
                [
                    "==",
                    "0.7.1"
                ]
            ]
        },
        {
            "name": "distro",
            "specs": [
                [
                    "==",
                    "1.9.0"
                ]
            ]
        },
        {
            "name": "frozenlist",
            "specs": [
                [
                    "==",
                    "1.5.0"
                ]
            ]
        },
        {
            "name": "gitdb",
            "specs": [
                [
                    "==",
                    "4.0.12"
                ]
            ]
        },
        {
            "name": "gitpython",
            "specs": [
                [
                    "==",
                    "3.1.44"
                ]
            ]
        },
        {
            "name": "greenlet",
            "specs": [
                [
                    "==",
                    "3.1.1"
                ]
            ]
        },
        {
            "name": "h11",
            "specs": [
                [
                    "==",
                    "0.14.0"
                ]
            ]
        },
        {
            "name": "httpcore",
            "specs": [
                [
                    "==",
                    "1.0.7"
                ]
            ]
        },
        {
            "name": "httpx",
            "specs": [
                [
                    "==",
                    "0.28.1"
                ]
            ]
        },
        {
            "name": "httpx-sse",
            "specs": [
                [
                    "==",
                    "0.4.0"
                ]
            ]
        },
        {
            "name": "idna",
            "specs": [
                [
                    "==",
                    "3.10"
                ]
            ]
        },
        {
            "name": "jinja2",
            "specs": [
                [
                    "==",
                    "3.1.5"
                ]
            ]
        },
        {
            "name": "jiter",
            "specs": [
                [
                    "==",
                    "0.8.2"
                ]
            ]
        },
        {
            "name": "jsonpatch",
            "specs": [
                [
                    "==",
                    "1.33"
                ]
            ]
        },
        {
            "name": "jsonpointer",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "jsonschema",
            "specs": [
                [
                    "==",
                    "4.23.0"
                ]
            ]
        },
        {
            "name": "jsonschema-specifications",
            "specs": [
                [
                    "==",
                    "2024.10.1"
                ]
            ]
        },
        {
            "name": "langchain",
            "specs": [
                [
                    "==",
                    "0.3.17"
                ]
            ]
        },
        {
            "name": "langchain-anthropic",
            "specs": [
                [
                    "==",
                    "0.3.5"
                ]
            ]
        },
        {
            "name": "langchain-community",
            "specs": [
                [
                    "==",
                    "0.3.16"
                ]
            ]
        },
        {
            "name": "langchain-core",
            "specs": [
                [
                    "==",
                    "0.3.33"
                ]
            ]
        },
        {
            "name": "langchain-ollama",
            "specs": [
                [
                    "==",
                    "0.2.3"
                ]
            ]
        },
        {
            "name": "langchain-openai",
            "specs": [
                [
                    "==",
                    "0.3.3"
                ]
            ]
        },
        {
            "name": "langchain-text-splitters",
            "specs": [
                [
                    "==",
                    "0.3.5"
                ]
            ]
        },
        {
            "name": "langgraph",
            "specs": [
                [
                    "==",
                    "0.2.69"
                ]
            ]
        },
        {
            "name": "langgraph-checkpoint",
            "specs": [
                [
                    "==",
                    "2.0.10"
                ]
            ]
        },
        {
            "name": "langgraph-sdk",
            "specs": [
                [
                    "==",
                    "0.1.51"
                ]
            ]
        },
        {
            "name": "langsmith",
            "specs": [
                [
                    "==",
                    "0.3.3"
                ]
            ]
        },
        {
            "name": "markdown-it-py",
            "specs": [
                [
                    "==",
                    "3.0.0"
                ]
            ]
        },
        {
            "name": "markdownify",
            "specs": [
                [
                    "==",
                    "0.14.1"
                ]
            ]
        },
        {
            "name": "markupsafe",
            "specs": [
                [
                    "==",
                    "3.0.2"
                ]
            ]
        },
        {
            "name": "marshmallow",
            "specs": [
                [
                    "==",
                    "3.26.0"
                ]
            ]
        },
        {
            "name": "mdurl",
            "specs": [
                [
                    "==",
                    "0.1.2"
                ]
            ]
        },
        {
            "name": "msgpack",
            "specs": [
                [
                    "==",
                    "1.1.0"
                ]
            ]
        },
        {
            "name": "multidict",
            "specs": [
                [
                    "==",
                    "6.1.0"
                ]
            ]
        },
        {
            "name": "mypy-extensions",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "narwhals",
            "specs": [
                [
                    "==",
                    "1.24.2"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    "==",
                    "1.26.4"
                ]
            ]
        },
        {
            "name": "ollama",
            "specs": [
                [
                    "==",
                    "0.4.7"
                ]
            ]
        },
        {
            "name": "openai",
            "specs": [
                [
                    "==",
                    "1.60.2"
                ]
            ]
        },
        {
            "name": "orjson",
            "specs": [
                [
                    "==",
                    "3.10.15"
                ]
            ]
        },
        {
            "name": "packaging",
            "specs": [
                [
                    "==",
                    "24.2"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    "==",
                    "2.2.3"
                ]
            ]
        },
        {
            "name": "pillow",
            "specs": [
                [
                    "==",
                    "11.1.0"
                ]
            ]
        },
        {
            "name": "propcache",
            "specs": [
                [
                    "==",
                    "0.2.1"
                ]
            ]
        },
        {
            "name": "protobuf",
            "specs": [
                [
                    "==",
                    "5.29.3"
                ]
            ]
        },
        {
            "name": "pyarrow",
            "specs": [
                [
                    "==",
                    "19.0.0"
                ]
            ]
        },
        {
            "name": "pydantic",
            "specs": [
                [
                    "==",
                    "2.10.6"
                ]
            ]
        },
        {
            "name": "pydantic-core",
            "specs": [
                [
                    "==",
                    "2.27.2"
                ]
            ]
        },
        {
            "name": "pydantic-settings",
            "specs": [
                [
                    "==",
                    "2.7.1"
                ]
            ]
        },
        {
            "name": "pydeck",
            "specs": [
                [
                    "==",
                    "0.9.1"
                ]
            ]
        },
        {
            "name": "pygments",
            "specs": [
                [
                    "==",
                    "2.19.1"
                ]
            ]
        },
        {
            "name": "python-dateutil",
            "specs": [
                [
                    "==",
                    "2.9.0.post0"
                ]
            ]
        },
        {
            "name": "python-dotenv",
            "specs": [
                [
                    "==",
                    "1.0.1"
                ]
            ]
        },
        {
            "name": "pytz",
            "specs": [
                [
                    "==",
                    "2025.1"
                ]
            ]
        },
        {
            "name": "pyyaml",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "referencing",
            "specs": [
                [
                    "==",
                    "0.36.2"
                ]
            ]
        },
        {
            "name": "regex",
            "specs": [
                [
                    "==",
                    "2024.11.6"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    "==",
                    "2.32.3"
                ]
            ]
        },
        {
            "name": "requests-toolbelt",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "rich",
            "specs": [
                [
                    "==",
                    "13.9.4"
                ]
            ]
        },
        {
            "name": "rpds-py",
            "specs": [
                [
                    "==",
                    "0.22.3"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    "==",
                    "1.17.0"
                ]
            ]
        },
        {
            "name": "smmap",
            "specs": [
                [
                    "==",
                    "5.0.2"
                ]
            ]
        },
        {
            "name": "sniffio",
            "specs": [
                [
                    "==",
                    "1.3.1"
                ]
            ]
        },
        {
            "name": "soupsieve",
            "specs": [
                [
                    "==",
                    "2.6"
                ]
            ]
        },
        {
            "name": "sqlalchemy",
            "specs": [
                [
                    "==",
                    "2.0.37"
                ]
            ]
        },
        {
            "name": "streamlit",
            "specs": [
                [
                    "==",
                    "1.41.1"
                ]
            ]
        },
        {
            "name": "tenacity",
            "specs": [
                [
                    "==",
                    "9.0.0"
                ]
            ]
        },
        {
            "name": "tiktoken",
            "specs": [
                [
                    "==",
                    "0.8.0"
                ]
            ]
        },
        {
            "name": "toml",
            "specs": [
                [
                    "==",
                    "0.10.2"
                ]
            ]
        },
        {
            "name": "tornado",
            "specs": [
                [
                    "==",
                    "6.4.2"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    "==",
                    "4.67.1"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    "==",
                    "4.12.2"
                ]
            ]
        },
        {
            "name": "typing-inspect",
            "specs": [
                [
                    "==",
                    "0.9.0"
                ]
            ]
        },
        {
            "name": "tzdata",
            "specs": [
                [
                    "==",
                    "2025.1"
                ]
            ]
        },
        {
            "name": "urllib3",
            "specs": [
                [
                    "==",
                    "2.3.0"
                ]
            ]
        },
        {
            "name": "watchdog",
            "specs": [
                [
                    "==",
                    "6.0.0"
                ]
            ]
        },
        {
            "name": "yarl",
            "specs": [
                [
                    "==",
                    "1.18.3"
                ]
            ]
        },
        {
            "name": "zstandard",
            "specs": [
                [
                    "==",
                    "0.23.0"
                ]
            ]
        }
    ],
    "lcname": "netdata-llm-agent"
}
        
Elapsed time: 0.48908s