AI助力智能运维!在Linux主机上实现和chatgpt对话
随着时代的发展,AI越来越强大,博主也在思考如何让AI进一步助力我们的日常工作,比如自动化,智能化运维?自治数据库,智能数据库?我这里尝试第一部,在Linux主机上实现和AI对话,有了这个窗口,后面如何做进一步的智能化,希望网友留言,来点开放性的点子!关注博主,看后续如何使用AI,来做智能化运维!
1. 需要开放的网址
• PyPI(Python Package Index)地址:用于下载 openai 库
• https://pypi.org
• https://files.pythonhosted.org
• OpenAI API 服务器地址:用于调用 OpenAI API
• https://api.openai.com
依赖库地址 Github
https://github.com/openai
因为我的个人openai是免费版的 没有token,我这里使用了公司的微软openai代理 ,还需要开放微软的openai网站
xxxxx.openai.azure.com ##公司的openai azure
2.安装依赖包和python3
主机上的依赖比较多,中间调试了蛮久,建议各种依赖使用最新的版本,主要版本信息如下
[root@oem01 ~]# python3 --version
Python 3.13.0
[root@oem01 ~]#
[root@oem01 ~]# python3 -m pip --version
pip 24.2 from /usr/local/lib/python3.13/site-packages/pip (python 3.13)
[root@oem01 ~]# python3 -m pip show openai
Name: openai
Version: 1.53.0
Summary: The official Python library for the openai API
Home-page: https://github.com/openai/openai-python
Author:
Author-email: OpenAI <support@openai.com>
License:
Location: /usr/local/lib/python3.13/site-packages
Requires: anyio, distro, httpx, jiter, pydantic, sniffio, tqdm, typing-extensions
Required-by:
[root@oem01 ~]# openssl version -a
OpenSSL 1.0.2k-fips 26 Jan 2017
built on: reproducible build, date unspecified
platform: linux-x86_64
options: bn(64,64) md2(int) rc4(16x,int) des(idx,cisc,16,int) idea(int) blowfish(idx)
compiler: gcc -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DZLIB -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DKRB5_MIT -m64 -DL_ENDIAN -Wall -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -Wa,--noexecstack -DPURIFY -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DRC4_ASM -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM -DECP_NISTZ256_ASM
OPENSSLDIR: "/etc/pki/tls"
engines: rdrand dynamic
sudo yum install epel-release -y
sudo yum install python3 -y
[root@coem01 ~]# pip3 --version
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
pip 21.3.1 from /usr/local/lib/python3.6/site-packages/pip (python 3.6)
[root@oem01 ~]# pip3 install pandas>=1.2.3
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
[root@szsplorcoem01 ~]# pip3 install openai
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting openai
Using cached https://files.pythonhosted.org/packages/79/b8/8d3986ab63b4a6d6149d015e3f4ddd3d3eac4a3dc71c484d448f138940e1/openai-0.10.5.tar.gz
Collecting requests>=2.20 (from openai)
Using cached https://files.pythonhosted.org/packages/2d/61/08076519c80041bc0ffa1a8af0cbd3bf3e2b62af10435d269a9d0f40564d/requests-2.27.1-py2.py3-none-any.whl
Collecting tqdm (from openai)
Using cached https://files.pythonhosted.org/packages/47/bb/849011636c4da2e44f1253cd927cfb20ada4374d8b3a4e425416e84900cc/tqdm-4.64.1-py2.py3-none-any.whl
Collecting pandas>=1.2.3 (from openai)
Could not find a version that satisfies the requirement pandas>=1.2.3 (from openai) (from versions: 0.1, 0.2, 0.3.0, 0.4.0, 0.4.1, 0.4.2, 0.4.3, 0.5.0, 0.6.0, 0.6.1, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.9.0, 0.9.1, 0.10.0, 0.10.1, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.15.0, 0.15.1, 0.15.2, 0.16.0, 0.16.1, 0.16.2, 0.17.0, 0.17.1, 0.18.0, 0.18.1, 0.19.0, 0.19.1, 0.19.2, 0.20.0, 0.20.1, 0.20.2, 0.20.3, 0.21.0, 0.21.1, 0.22.0, 0.23.0, 0.23.1, 0.23.2, 0.23.3, 0.23.4, 0.24.0, 0.24.1, 0.24.2, 0.25.0, 0.25.1, 0.25.2, 0.25.3, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.4, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5)
No matching distribution found for pandas>=1.2.3 (from openai)
[root@oem01 ~]# pip3 install --upgrade pip
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3 install --user` instead.
Collecting pip
Downloading https://files.pythonhosted.org/packages/a4/6d/6463d49a933f547439d6b5b98b46af8742cc03ae83543e4d7688c2420f8b/pip-21.3.1-py3-none-any.whl (1.7MB)
100% |████████████████████████████████| 1.7MB 746kB/s
Installing collected packages: pip
Successfully installed pip-21.3.1
You are using pip version 21.3.1, however version 24.3.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
[root@oem01 ~]# pip3 install openai
WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
Collecting openai
Using cached openai-0.10.5.tar.gz (157 kB)
Preparing metadata (setup.py) ... done
Collecting requests>=2.20
Using cached requests-2.27.1-py2.py3-none-any.whl (63 kB)
Collecting tqdm
Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB)
Collecting openai
Downloading openai-0.10.4.tar.gz (157 kB)
|████████████████████████████████| 157 kB 5.8 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.10.3.tar.gz (157 kB)
|████████████████████████████████| 157 kB 14.5 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.10.2.tar.gz (156 kB)
|████████████████████████████████| 156 kB 18.1 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.10.1.tar.gz (155 kB)
|████████████████████████████████| 155 kB 22.2 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.10.0.tar.gz (155 kB)
|████████████████████████████████| 155 kB 17.0 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.9.4.tar.gz (156 kB)
|████████████████████████████████| 156 kB 25.2 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.9.3.tar.gz (155 kB)
|████████████████████████████████| 155 kB 21.5 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.9.2.tar.gz (155 kB)
|████████████████████████████████| 155 kB 19.8 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.9.1.tar.gz (156 kB)
|████████████████████████████████| 156 kB 20.3 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.9.0.tar.gz (155 kB)
|████████████████████████████████| 155 kB 24.5 MB/s
Preparing metadata (setup.py) ... done
Downloading openai-0.8.0.tar.gz (147 kB)
|████████████████████████████████| 147 kB 18.0 MB/s
Preparing metadata (setup.py) ... done
Collecting certifi>=2017.4.17
Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
|████████████████████████████████| 167 kB 25.1 MB/s
Collecting urllib3<1.27,>=1.21.1
Downloading urllib3-1.26.20-py2.py3-none-any.whl (144 kB)
|████████████████████████████████| 144 kB 23.3 MB/s
Collecting charset-normalizer~=2.0.0
Downloading charset_normalizer-2.0.12-py3-none-any.whl (39 kB)
Collecting idna<4,>=2.5
Downloading idna-3.10-py3-none-any.whl (70 kB)
|████████████████████████████████| 70 kB 13.2 MB/s
Collecting importlib-resources
Downloading importlib_resources-5.4.0-py3-none-any.whl (28 kB)
Collecting zipp>=3.1.0
Downloading zipp-3.6.0-py3-none-any.whl (5.3 kB)
Using legacy 'setup.py install' for openai, since package 'wheel' is not installed.
Installing collected packages: zipp, urllib3, importlib-resources, idna, charset-normalizer, certifi, tqdm, requests, openai
WARNING: The script normalizer is installed in '/usr/local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
WARNING: The script tqdm is installed in '/usr/local/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Running setup.py install for openai ... done
Successfully installed certifi-2024.8.30 charset-normalizer-2.0.12 idna-3.10 importlib-resources-5.4.0 openai-0.8.0 requests-2.27.1 tqdm-4.64.1 urllib3-1.26.20 zipp-3.6.0
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
[root@oem01 ~]#
3.获取API key
如果是使用openai 可以在openai主页 右上角设置,选择API KEY来选择
4.python脚本实现交互
如下脚本就是一个示例可以实现和openai对话,在linux主机上来实现和AI对话。
import requests
# Configuration
API_KEY = "you API KEY"
ENDPOINT = "https://xxxx.openai.azure.com/openai/XX"##你的openai和具体的模型version链接
headers = {
"Content-Type": "application/json",
"api-key": API_KEY,
}
def get_openai_response(user_input):
payload = {
"messages": [
{"role": "system", "content": "你是一个帮助用户查找信息的 AI 助手。"},
{"role": "user", "content": user_input}
],
"temperature": 0.7,
"top_p": 0.95,
"max_tokens": 800
}
try:
response = requests.post(ENDPOINT, headers=headers, json=payload)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]
except requests.RequestException as e:
return f"Request failed: {e}"
# Interactive Chat
print("Welcome to Azure OpenAI Chat! Type 'exit' to quit.")
while True:
user_input = input("You: ")
if user_input.lower() == 'exit':
print("Exiting chat. Goodbye!")
break
output = get_openai_response(user_input)
print(f"AI: {output}")
5.看看实际的效果
这样我们就可以在linux主机上 实现了和AI对话了!!
具体的对话如下:
python3 chat.py
Welcome to Azure OpenAI Chat! Type 'exit' to quit.
You: ora-01555
AI: ORA-01555 错误是 Oracle 数据库中的一个常见错误,通常称为“快照过旧”错误。这个错误发生在长时间运行的查询尝试读取已经被更新或删除的数据块的旧版本时。具体来说,这是因为查询所依赖的重做日志和撤销段(Undo Segment)中的数据已经被覆盖,导致无法提供一致性读。
产生 ORA-01555 错误的常见原因包括:
1. **撤销段不足**:撤销段空间不足,导致旧版本数据被覆盖。
2. **长时间运行的查询**:查询运行时间过长,导致需要的旧版本数据被覆盖。
3. **频繁的 DML 操作**:系统中大量的插入、更新和删除操作,导致撤销段空间很快被占用并覆盖。
解决 ORA-01555 错误的方法:
1. **增加撤销段大小**:增加撤销表空间的大小或增加撤销段的数量,使得撤销段能保留更长时间的旧数据。
2. **优化查询**:优化长时间运行的查询,使其运行时间缩短,减少读取旧版本数据的需求。
3. **减少并发 DML 操作**:减少系统中并发的 DML 操作,降低撤销段的压力。
4. **调整撤销保留时间**:通过设置 `UNDO_RETENTION` 参数,增加撤销段数据的保留时间。
5. **使用闪回技术**:如果使用的是 Oracle 10g 及以上版本,可以利用闪回查询技术来读取所需的旧数据。
查看具体的错误信息和上下文,您可以查看 Oracle 的警告日志文件和跟踪文件,以获取更多详细信息。
You: ni^H^H^H^H^H
AI: 您好!请问有什么我可以帮助您的吗?
You: 现在时间
AI: 抱歉,我无法提供当前的时间。请查看您的设备以获取准确的时间。
You: trump当选总统了吗
AI: 唐纳德·特朗普曾在2016年当选为美国总统,并在2017年1月20日正式就任。然而,在2020年的总统选举中,乔·拜登击败了特朗普,并于2021年1月20日成为美国总统。如果你指的是2024年的选举,目前还没有结果,因为选举尚未进行。
You: 你当前是什么模型
AI: 我是基于OpenAI开发的GPT-3.5模型。有什么我可以帮你的吗?
##我实际上使用的GPT-4o模型
You: 如何实现智能化运维
AI: 智能化运维是指通过引入人工智能(AI)、大数据分析、自动化等技术来提升 IT 运维管理的效率和质量。实现智能化运维可以从以下几个方面入手:
1. **监控和告警系统的智能化**:
- **实时监控**:使用智能监控工具(如 Zabbix、Prometheus)实时监控系统和应用的性能指标。
- **智能告警**:引入机器学习算法分析历史数据和当前监控数据,减少误报和漏报,并实现告警的智能化分级处理。
2. **日志分析与故障预测**:
- **日志采集**:使用 ELK(Elasticsearch、Logstash、Kibana)等工具集中收集和存储日志数据。
- **日志分析**:通过自然语言处理(NLP)技术和机器学习算法分析日志,发现潜在问题和异常。
- **故障预测**:利用历史数据训练模型,预测可能的故障并提前采取措施。
3. **自动化运维**:
- **自动化脚本**:编写和使用 Ansible、Puppet、Chef 等运维自动化工具,自动化完成日常运维任务(如部署、配置、补丁管理)。
- **自动化流程**:设计和实现 CI/CD(持续集成/持续部署)流水线,自动化软件的构建、测试和部署。
4. **智能资源调度**:
- **动态资源分配**:使用 Kubernetes 等容器编排工具,根据应用需求和资源使用情况,动态分配计算资源。
- **负载均衡**:通过智能负载均衡算法,优化流量分配,提升系统性能和可用性。
5. **知识库和智能助手**:
- **知识库**:构建和维护一个运维知识库,记录常见问题及解决方案。
- **智能助手**:开发或引入智能助手(如 ChatOps),通过自然语言接口与运维人员互动,辅助处理问题和执行运维任务。
6. **数据驱动决策**:
- **数据收集与分析**:全面收集运维相关数据(如性能指标、日志、告警),并进行深度分析。
- **可视化**:使用 Grafana 等工具,将分析结果进行可视化展示,帮助运维人员做出数据驱动的决策。
7. **安全管理**:
- **安全监控**:使用安全信息和事件管理(SIEM)工具,实时监控安全事件。
- **威胁检测**:通过机器学习算法检测异常行为和潜在威胁,及时响应和处理。
实现智能化运维需要综合运用多种技术手段,并且持续优化运维流程和工具,不断提升运维的智能化水平和自动化程度。
6.有什么好的想法吗?
如过在主机端可以实现了AI对话,那么就可以有更多的想象力了,如何利用AI 来实现本地的智能化运维?如果利用AI实现本地智能化性能调优?还有什么好的可以实现的主意,欢迎大家踊跃留言!如果点子比较好,我会优先来实现!点击关注看更多经常后续!