Myluzh Blog

使用LLM+MCP,实现对话式运维的Demo

2025-5-16 myluzh NOTES

0x01 编写mcp server 基于FastMCP框架的异步工具服务器,提供了多种实用的功能,例如端口可达性测试、域名解析、通过SSH查看服务器监听端口和防火墙规则等。 from mcp.server.fastmcp import FastMCP import socket import asyncio # 创建FastMCP实例 mcp = FastMCP("Demo") @mcp.tool() async def ping_port(host: str, port: int, timeout: float = 2.0) -> str: """ 测试指定主机的端口是否可达。 Args: host: 目标主机名或IP地址 port: 要测试的端口号 timeout: 超时时间(秒),默认为2秒 Returns: str: 端口测试结果 """ try: # 创建异步任务 loop = async...

阅读全文>>

标签: python llm mcp

评论(0) (169)

Python邮件发送例子

2023-10-25 myluzh Python

python邮件发送案例 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText class AutoEmail: def __init__(self): self.__sender_email = "support@itho.cn" self.__password = "qwer1234" def send_email(self, recipient_emails, subject, message): msg = MIMEMultipart() msg['Subject'] = subject msg['From'] = self.__sender_email # 检查recipient_emails是否是一个字符串。如果是字符串,则将其转换为包含单个收件人的列表 if isinstance(r...

阅读全文>>

标签: python email 邮件发送

评论(0) (408)

Python pandas 数据结构-DataFrame

2023-7-21 myluzh Python

0x00 关于DataFrame DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引 行索引,表明不同行,横向索引,叫index,0轴,axis=0 列索引,表名不同列,纵向索引,叫columns,1轴,axis=1 0x01 创建一个dataframe import pandas as pd import numpy as np # 创建一个ndarray,10行5列学生成绩 score = np.random.randint(40, 100, (10, 5)) # 变成dataframe格式 subjects = ['语文', '数学', '英语', '科学', '政治'] stu = ['学生' + str(_) for _ in range(score.shape[0])] # ['学生0', '学生1', '学生2', '学生3', '学生4', '学生5', '学生6', '学生7', '学生8', '学生9'] # index是行索引,columns是列索引 data = pd.DataF...

阅读全文>>

标签: python pandas 数据结构 dataframe

评论(0) (745)

Python pandas 数据结构-Series

2023-7-21 myluzh Python

0x00 介绍 Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。 0x01 Series import pandas as pd import numpy as np # 直接通过数组创建 a = pd.Series(np.arange(9)) # 通过数组+指定索引创建 b = pd.Series([1.2, 2.9, 3.8, 4.7], index=[1, 2, 3, 4]) # 通过字典创建 c = pd.Series({ "red": 10, "blue": 20 }) # 通过索引获取数据 print(a[3]) # 3 print(b[2]) # 2.9 print(c['red']) # 10 # 获取索引 print(c.index) # Index(['red', 'blue'], dtype='object') # 获取值 print(c.values) # [10 20]

阅读全文>>

标签: python pandas series

评论(0) (578)

Python numpy 矩阵与向量

2023-7-20 myluzh Python

0x01 矩阵与向量 (1)矩阵 矩阵(matrix)和array的区别矩阵必须是2维的,但是array可以是多维的。 如下图,这个是 3x2 矩阵,即3行2列。如m为行,n 为列,那么 mxn 即 3x2。 矩阵的维数即行数x列数,矩阵元素(矩阵项): Aij 指第 i 行,第j列的元素. (2)向量 向量是一种特殊的矩阵,讲义中的向量一般都是列向量,下图展示的就是三维列向量(3x1)。 0x02 加法和标量乘法 (1)矩阵的加法: 行列数相等的可以加。例: (2)矩阵的乘法: 每个元素都要乘。例: 组合算法也类似 0x03 矩阵向量乘法 矩阵和向量的乘法如图: mxn 的矩阵乘以 nx1 的向量,得到的是 mx1 的向量。 例如: 1*1+3*5 = 16 4*1+0*5 = 4 2*1+1*5 = 7 矩阵乘法遵循准则: (M行, N列)*(N行,L列) = (M行,L列) 0x04 矩阵乘法 (1)介绍 mxn 矩阵乘以 nxo 矩阵,变成 mxo 矩阵 确保第一个矩阵的列数等于第二个矩阵的行数,否则无法相乘。 举例:比如说现在有两个矩阵 A 和 B,那 么它们的乘积就可以表示为图中所示的形式。...

阅读全文>>

标签: python numpy 矩阵 向量 np.matmul np.dot

评论(0) (633)

Python numpy 数组间运算与广播机制

2023-7-20 myluzh Python

0x01 数组与数运算 import numpy as np arr = np.array([[1, 2, 3, 2, 1, 4], [5, 6, 1, 2, 3, 1]]) """ arr + 1 array([[2, 3, 4, 3, 2, 5], [6, 7, 2, 3, 4, 2]]) arr / 2 array([[0.5, 1. , 1.5, 1. , 0.5, 2. ], [2.5, 3. , 0.5, 1. , 1.5, 0.5]]) """ # 可以对比python列表的运算,看出区别 a = [1, 2, 3, 4, 5] """ a*3 Out[3]: [1, 2, 3, 4, 5, 1, 2, 3, 4, 5, 1, 2, 3, 4, 5] """ 0x02 数组与数组运算 数组在进行矢量化运算时,要求数组的形状是相等的。当形状不相等的数组执行算术运算的时候,就会出现广播机制,该机制会对数组进行扩展,使数组的shape属性值一样,这样,就可以进行矢量化运算了。下面通过一个例子进行说明: import numpy as np ...

阅读全文>>

标签: python numpy

评论(0) (695)