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...
本文来自博客园,作者:王竹笙,转载请注明原文链接:https://www.cnblogs.com/edeny/p/18659590
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?