银河麒麟V10 Ollama+ShellGPT打造Shell AI助手——筑梦之路

环境说明

  1. 操作系统版本: 银河麒麟V10

  2. CPU架构:X86

  3. Python版本:3.12.9

  4. 大模型:mistral:7b-instruct

准备工作

1. 编译安装python 3.12

bash 复制代码
# 下载python 源码

wget https://www.python.org/ftp/python/3.12.9/Python-3.12.9.tgz

# 安装编译所需工具包、依赖包

yum -y groupinstall "Development tools"

yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel zlib* libffi-devel libuuid-devel libnsl2-devel 

# 解压源码包、配置、编译安装

tar -zxvf Python-3.12.9.tgz

cd Python-3.12.9

./configure --prefix=/opt/python --enable-optimizations

make -j$(nproc)

make install

# 创建软链接

ln -sf /opt/python/bin/python3 /usr/bin/python
ln -sf /opt/python/bin/pip3 /usr/bin/pip

python -V 

pip -V

python -m pip install --upgrade pip

2. 安装ollama

ollama建议安装在有GPU的机器上,这里使用二进制文件方式安装,操作系统建议使用ubuntu。

bash 复制代码
#下载ollama
wget https://github.com/ollama/ollama/releases/download/v0.5.7/ollama-linux-amd64.tgz

#创建目录
mkdir /usr/bin/ollama/

#解压二进制文件到指定目录
tar -zxvf ollama-linux-amd64.tgz   -C /usr/bin/ollama/

#创建用户组
useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama 
usermod -a -G ollama  root

#授权
chown ollama:ollama   /usr/bin/ollama 
chmod +x /usr/bin/ollama

#创建service文件
cat > /etc/systemd/system/ollama.service << EOF
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"
#配置远程访问
Environment="OLLAMA_HOST=0.0.0.0"
#配置跨域请求
Environment="OLLAMA_ORIGINS=*"
#配置OLLAMA的模型存放路径,默认路径是/usr/share/ollama/.ollama/models/
Environment="OLLAMA_MODELS=/data/ollama/.ollama/models"
[Install]
WantedBy=default.target
EOF

systemctl daemon-reload

#创建模型存储目录
mkdir -p /data/ollama/.ollama/models 
chown -R ollama:ollama /data/ollama/.ollama

#启动服务并加入开机启动
systemctl  enable  ollama --now

#配置环境变量
vim /etc/profile

#追加
export PATH=/usr/bin/ollama/bin:$PATH
source /etc/profile

#检查
ollama   --version

curl 127.0.0.1:11434


#ollama常用命令
启动ollama服务
ollama serve
查看所有下载的模型 
ollama list
查看大模型信息 
ollama show deepseek-r1:1.5b
查看 ollama 管理的大模型 
ollama list 
运行大模型 
ollama run deepseek-r1:1.5b
查看正在运行的大模型 
ollama ps

3. 拉取大模型

bash 复制代码
ollama pull mistral:7b-instruct

外部客户端访问:http://ip地址:11434

安装ShellGPT

https://github.com/TheR1D/shell_gpt

https://github.com/TheR1D/shell_gpt/wiki/Ollama

1. 安装shellGPT

bash 复制代码
pip install "shell-gpt[litellm]"

pip install shell-gpt

2. 简单测试

bash 复制代码
sgpt --model ollama/mistral:7b-instruct  "Who are you?"

3. 修改配置

bash 复制代码
vim ~/.config/shell_gpt/.sgptrc

主要修改的地方:

DEFAULT_MODEL=ollama/mistral:7b-instruct
OPENAI_USE_FUNCTIONS=false
USE_LITELLM=true

注意:以上这种是ollama模型和shellGPT在同一台主机的配置方式。

bash 复制代码
# 不同机器之间调用大模型

DEFAULT_MODEL=mistral:7b-instruct
API_BASE_URL=http://ip地址:11434
OPENAI_API_KEY=token-123

# 参考配置

CHAT_CACHE_PATH=/tmp/chat_cache
CACHE_PATH=/tmp/cache
CHAT_CACHE_LENGTH=100
CACHE_LENGTH=100
REQUEST_TIMEOUT=60
DEFAULT_MODEL=qwen
DEFAULT_COLOR=magenta
ROLE_STORAGE_PATH=/root/.config/shell_gpt/roles
DEFAULT_EXECUTE_SHELL_CMD=false
DISABLE_STREAMING=false
CODE_THEME=dracula
OPENAI_FUNCTIONS_PATH=/root/.config/shell_gpt/functions
OPENAI_USE_FUNCTIONS=true
SHOW_FUNCTIONS_OUTPUT=false
API_BASE_URL=http://xxxx:11434
PRETTIFY_MARKDOWN=true
USE_LITELLM=false
SHELL_INTERACTION=true
OS_NAME=auto
SHELL_NAME=auto
OPENAI_API_KEY=token-123

测试验证

1. 通用知识

bash 复制代码
sgpt "什么是斐波那契数列"

sgpt "你知道现在的操作系统是什么吗"

2. shell命令

bash 复制代码
sgpt --shell "找到所有的.log文件"

sgpt -s "查查看内存使用情况"

sgpt --shell "make a file named demo.txt"

sgpt --shell "find demo.txt in current folder"

3. code模式

bash 复制代码
sgpt -c "python解决buzz问题"

4. chat模式

bash 复制代码
sgpt --chat conversation_1 "please remember my favorite number: 4"

sgpt --chat conversation_1 "what would be my favorite number + 5?"
bash 复制代码
# chat+shell混合使用

sgpt --chat conversation_3 --shell "what is in current folder"
# -> ls
sgpt --chat conversation_3 "Sort by name"
# -> ls | sort
sgpt --chat conversation_3 "Concatenate them using FFMPEG"
# -> ffmpeg -i "concat:$(ls | sort | tr '\n' '|')" -codec copy output.mp4
sgpt --chat conversation_3 "Convert the resulting file into an MP3"
# -> ffmpeg -i output.mp4 -vn -acodec libmp3lame -ac 2 -ab 160k -ar 48000 final_output.mp3
bash 复制代码
# chat+code混合使用

sgpt --chat conversation_2 --code "make a request to localhost using python"
sgpt --chat conversation_2 --code "add caching"

sgpt --list-chats

sgpt --show-chat conversation_1

5. REPL模式

bash 复制代码
# 交互模式

sgpt --repl temp

# shell code混合使用

sgpt --repl temp --shell

6. Agent模式

bash 复制代码
sgpt --create-role json_generator
# Enter role description: Provide only valid json as response.
sgpt --role json_generator "random: user, password, email, address"
bash 复制代码
╭─ Arguments ──────────────────────────────────────────────────────────────────────────────────────────────╮
│   prompt      [PROMPT]  The prompt to generate completions for.                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Options ────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --model            TEXT                       Large language model to use. [default: gpt-4o]             │
│ --temperature      FLOAT RANGE [0.0<=x<=2.0]  Randomness of generated output. [default: 0.0]             │
│ --top-p            FLOAT RANGE [0.0<=x<=1.0]  Limits highest probable tokens (words). [default: 1.0]     │
│ --md             --no-md                      Prettify markdown output. [default: md]                    │
│ --editor                                      Open $EDITOR to provide a prompt. [default: no-editor]     │
│ --cache                                       Cache completion results. [default: cache]                 │
│ --version                                     Show version.                                              │
│ --help                                        Show this message and exit.                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Assistance Options ─────────────────────────────────────────────────────────────────────────────────────╮
│ --shell           -s                      Generate and execute shell commands.                           │
│ --interaction         --no-interaction    Interactive mode for --shell option. [default: interaction]    │
│ --describe-shell  -d                      Describe a shell command.                                      │
│ --code            -c                      Generate only code.                                            │
│ --functions           --no-functions      Allow function calls. [default: functions]                     │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Chat Options ───────────────────────────────────────────────────────────────────────────────────────────╮
│ --chat                 TEXT  Follow conversation with id, use "temp" for quick session. [default: None]  │
│ --repl                 TEXT  Start a REPL (Read--eval--print loop) session. [default: None]                │
│ --show-chat            TEXT  Show all messages from provided chat id. [default: None]                    │
│ --list-chats  -lc            List all existing chat ids.                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Role Options ───────────────────────────────────────────────────────────────────────────────────────────╮
│ --role                  TEXT  System role for GPT model. [default: None]                                 │
│ --create-role           TEXT  Create role. [default: None]                                               │
│ --show-role             TEXT  Show role. [default: None]                                                 │
│ --list-roles   -lr            List roles.                                                                │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────╯
相关推荐
vibecoding日记7 天前
codex-rewind 的设计与取舍:让 Codex 同时回滚对话和代码
产品·编程工具·ai助手·vibecoding
专业工业电源打工人10 天前
硬件选型笔记|LS03‑13B24R3 和钡特电源 AS03‑23S24 互通,3W AC‑DC 模块电源参数拆解
国产化·电源模块·工业电源
专业工业电源打工人11 天前
B0505D‑1WR3 适配优选 钡特电源 DB1‑05S05D|微功率 DC‑DC 模块电源选型笔记
国产化·电源模块·工业电源
AnyChat研究院14 天前
全栈信创深度适配,AnyChat为多领域数智化升级夯实安全可控根基
音视频·信创·安全可控·国产化·信创国产化·信创适配·信创音视频
懂好多的工业电源工程师17 天前
E0512S‑1WR3 适配优选 钡特电源 DF1‑05D12LS|1W 隔离 DC‑DC 模块电源选型评估
国产化·电源模块·工业电源
向成科技18 天前
新品亮相|向成电子IPCA_3588H AI边缘网关重磅发布,算力下沉,自主可控
人工智能·边缘计算·国产化·硬件·边缘网关·主板·端侧ai
懂好多的工业电源工程师19 天前
WRB1205S-3WR2 适配优选 钡特电源 VB3-12S05S|3W 工业 DC-DC 模块电源选型梳理
国产化·电源模块·工业电源
一名普通的电源工程师19 天前
URB4805LD-50WR3 适配优选 钡特电源 VB50-48S05LD|50W 工业 DC-DC 模块电源选型解析
国产化·电源模块·工业电源
懂好多的工业电源工程师19 天前
B1205S-1WR3 适配优选 钡特电源 DB1-12S05S|1W DC-DC 隔离模块电源选型笔记
国产化·电源模块·工业电源
新知图书1 个月前
12.1 技术文档与表达优化
人工智能·ai助手·千问