Chains大杂烩,AI监控告警工具, 掌握结合 Langchain多个模块,快速实现实用工具-5

使用LLMBashChain查询系统状态

 

 功能1  bash_chain -亚查询操作系统的所有磁盘使用情况

from langchain_community.llms.tongyi import Tongyi
from langchain_experimental.llm_bash.base import LLMBashChain
from langchain.prompts import PromptTemplate

# 通义获取api key
import os
from dotenv import find_dotenv, load_dotenv

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]

# 功能1: bash_chain -亚查询操作系统的所有磁盘使用情况
# 1.定义模型
model = Tongyi(model_name='qwen-max', model_kwargs={'temperature': 0.01})

bash_chain = LLMBashChain.from_llm(model, verbose=True)  # verbose表示详细信息

query = "查询操作系统的所有磁盘使用情况"

res = bash_chain.invoke(query)

 

功能2  alarm chain - 查询磁盘使用情况,判断是否需要蔷警

from langchain_community.llms.tongyi import Tongyi
from langchain_experimental.llm_bash.base import LLMBashChain
from langchain.prompts import PromptTemplate

# 通义获取api key
import os
from dotenv import find_dotenv, load_dotenv

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]

# 功能1: bash_chain -亚查询操作系统的所有磁盘使用情况
# 1.定义模型
model = Tongyi(model_name='qwen-max', model_kwargs={'temperature': 0.01})

bash_chain = LLMBashChain.from_llm(model, verbose=True)  # verbose表示详细信息

query = "查询操作系统的所有磁盘使用情况"

res = bash_chain.invoke(query)

# 功能2: alarm chain - 查询磁盘使用情况,判断是否需要蔷警
prompt_tlp = PromptTemplate.from_template(
    """
    {context}\n\n
    根据如上巡检结果,判断是否需要告警,如果需要的话总结并返回告警内容; 否则返回空字符串。"""
)

alarm_chain = {
                  "context": lambda x: res['answer']   # 将res 类型转成 字典. 取值 answer

              } | prompt_tlp | model

res1 = alarm_chain.invoke({})
print(res1)

 

功能3  alarm_api_chain-查询磁盘使用情况,需要告警。通过HTTP API发送告警

使用 APIChain发送告警信息

http://httpbin.org # 测试http接口,可传递参数

http://httpbin.org/get?alarm=磁盘满了   # 测试http接口,可传递参数

 查看 APIChain.from_llm_and_api_docs() 源码需要传的参数

 

代码实现

from langchain_community.llms.tongyi import Tongyi
from langchain_experimental.llm_bash.base import LLMBashChain
from langchain.prompts import PromptTemplate
from langchain.chains import APIChain
from langchain_core.runnables import RunnablePassthrough, RunnableLambda
# 通义获取api key
import os
from dotenv import find_dotenv, load_dotenv

load_dotenv(find_dotenv())
DASHSCOPE_API_KEY = os.environ["DASHSCOPE_API_KEY"]

# 功能1: bash_chain -亚查询操作系统的所有磁盘使用情况
# 1.定义模型
model = Tongyi(model_name='qwen-max', model_kwargs={'temperature': 0.01})

bash_chain = LLMBashChain.from_llm(model, verbose=True)  # verbose=true表示详细信息

query = "查询操作系统的所有磁盘使用情况"

res = bash_chain.invoke(query)

# print(res)

# 功能2: alarm chain - 查询磁盘使用情况,判断是否需要蔷警
prompt_tlp = PromptTemplate.from_template(
    """
    {context}\n\n
    根据如上巡检结果,判断是否需要告警,如果需要的话总结并返回告警内容; 否则返回空字符串。"""
)

alarm_chain = {
                  "context": lambda x: res['answer']   # 将res 类型转成 字典. 取值 answer

              } | prompt_tlp | model

res1 = alarm_chain.invoke({})

# print(res1)

# 功能3  alarm_api_chain-查询磁盘使用情况,需要告警,通过HTTP API发送告

HTTPBIN_DOCS = """
# API 使用文档

## 概述

此API用于向指定的URL发送告警信息。当系统检测到特定的告警条件时,可以调用此API以通知管理员或记录系统的状态。

## API 信息

- **URL**: http://httpbin.org/get
- **业务说明**: 发送告警信息至服务器,用于系统告警通知或日志记录。
- **请求方式**: 'GET'

# ## 请求参数
# 
# 参数名 | 类型    | 描述             | 是否必须  | 示例值   |
# alarm | string | 具体的告警信息描述  | 是       | "alarm information" |
# 
# """


api_chain = APIChain.from_llm_and_api_docs(
    llm=model,
    api_docs=HTTPBIN_DOCS,
    limit_to_domains=["http://httpbin.org"],
    verbose=True,
)

alarm_api_chain = alarm_chain | api_chain  # 把告警内容 传递给api_chain

res2 = alarm_api_chain.invoke({})
#
# print(res2)

我们定一个 磁盘使用70% 报警

end...

 

posted @   王竹笙  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示