項目七.AI大模型部署

環境準備

  • ?此處使用的是rock linux8.9操作系統
  • k8s集群三個設備,使用centos7.9操作系統

設備配置

##上傳ollama工具的壓縮包
[root@project ~]# ll
total 1497732
-rw-r--r-- 1 root root 1533674176 Jul 21 11:27 ollama-linux-amd64.tgz
[root@project ~]# tar -C /usr -xzf ollama-linux-amd64.tgz
##前臺運行ollama工具
[root@project ~]# ollama start
[GIN] 2025/07/21 - 11:32:09 | 200 |      36.969μs |       127.0.0.1 | HEAD     "/"
[GIN] 2025/07/21 - 11:32:09 | 200 |     119.106μs |       127.0.0.1 | GET      "/api/ps"
[GIN] 2025/07/21 - 11:32:14 | 200 |      33.533μs |       127.0.0.1 | HEAD     "/"
[GIN] 2025/07/21 - 11:32:14 | 200 |      181.97μs |       127.0.0.1 | GET      "/api/tags"
^C
##后臺運行
[root@project ~]# ollama start &
[1] 1976
##查看端口
[root@project ~]# ss -antlup | grep ollama
tcp   LISTEN 0      2048       127.0.0.1:11434      0.0.0.0:*    users:(("ollama",pid=1800,fd=3))
##前臺運行時可另起一個窗口查看
#列出大模型的源文件
[root@project ~]# ollama ls
NAME    ID    SIZE    MODIFIED
#列出正在運行的大模型
[root@project ~]# ollama ps
NAME    ID    SIZE    PROCESSOR    UNTIL/*
[root@project ~]# ollama start/serve #前臺運行
[root@project ~]# ollama start/serve & #后臺運行
[root@project ~]# OLLAMA_HOST=0.0.0.0 ollama start/serve  #設置參數運行
*/##部署DeepSeek模型
#拉取
[root@project ollama]# ollama pull deepseek-r1:1.5b
[GIN] 2025/07/21 - 13:18:53 | 200 |      26.127?s |       127.0.0.1 | HEAD     "/"
pulling manifest ? time=2025-07-21T13:18:56.050+08:00 level=INFO source=download.go:176 msg="downloading aabd4debf0c8 in 12 100 MB part(s)"
pulling manifest 
pulling aabd4debf0c8... 100% 
...                         
pulling manifest 
pulling aabd4debf0c8... 100%                         
verifying sha256 digest 
writing manifest 
success
#運行大模型
[root@project ~]# ollama run deepseek-r1:1.5b
...
[GIN] 2025/07/21 - 13:55:57 | 200 |  1.316049658s |       127.0.0.1 | POST     "/api/generate"
>>> 你是誰?    ##測試:通過后臺交互
<think></think>您好!我是由中國的深度求索(DeepSeek)公司開發的智能助手DeepSeek-R1。如您有任何任何問題,我會盡我所能為您提供幫助。[GIN] 2025/07/21 - 13:56:21 | 200 |  6.750316892s |       127.0.0.1 | POST     "/api/chat">>> Send a message (/? for help)
【ctrl+d】退出模型終端##查看內存使用
[root@project ~]# free -htotal        used        free      shared  buff/cache   available
Mem:          7.2Gi       260Mi       1.4Gi       1.0Mi       5.6Gi       6.7Gi
Swap:            0B          0B          0B
##列出所以模型
[root@project ~]# ollama ls
NAME                ID              SIZE      MODIFIED      
deepseek-r1:1.5b    e0979632db5a    1.1 GB    4 minutes ago 
##查看正在運行的模型   
[root@project ~]# ollama ps
NAME                ID              SIZE      PROCESSOR    UNTIL              
deepseek-r1:1.5b    e0979632db5a    1.6 GB    100% CPU     4 minutes from now##查看模型信息
[root@project ~]# ollama show deepseek-r1:1.5bModelarchitecture        qwen2     parameters          1.8B      context length      131072    embedding length    1536      quantization        Q4_K_M    Parametersstop    "<|begin▁of▁sentence|>"    stop    "<|end▁of▁sentence|>"      stop    "<|User|>"                 stop    "<|Assistant|>"            LicenseMIT License                    Copyright (c) 2023 DeepSeek##停止ollama工具
[root@project ~]# killall ollama 
##查看;停止運行模型
[root@project ~]# ollama ps
NAME                ID              SIZE      PROCESSOR    UNTIL              
deepseek-r1:1.5b    e0979632db5a    1.6 GB    100% CPU     4 minutes from now
[root@project ~]# ollama stop deepseek-r1:1.5b

openwebui部署

  • 發布前臺供用戶使用

webui 去調用你本機容器跑的ollama的大模型,[ip就是你的web服務器的ip],等容器的deepseek跑起來再用webui去調你容器里的ollama 。 所以說Project服務當作后端也可以。哪么你的docker 去調你project的服務器上的大模型就行了。project上面的ollama刪了,所以現在用docker 跑起來。調它docker跑的ollama也可以

##安裝docker-ce
[root@web ~]# yum install -y yum-utils
[root@web ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@web ~]# yum install docker-ce -y
[root@web ~]# systemctl enable docker --now
##上傳鏡像文件
[root@web ~]# ll
total 7817064
-rw-r--r-- 1 root root 3484484096 Jul 21 16:26 ollama.tar.gz
-rw-r--r-- 1 root root 4520183296 Jul 21 16:30 open-webui.tar.gz
##導入鏡像文件
[root@web ~]# docker load -i ollama.tar.gz
[root@web ~]# docker load -i open-webui.tar.gz
[root@web ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
ollama/ollama                   latest    676364f65510   4 months ago   3.48GB
ghcr.io/open-webui/open-webui   main      ab78641aa87a   5 months ago   4.46GB
##運行ollama工具
[root@web ~]# docker run -d -p 11434:11434 --name ollama ollama/ollama:latest
##先運行 Ollama 容器中的 DeepSeek 模型
[root@web ~]#  docker exec -it ollama ollama run deepseek-r1:1.5b
pulling manifest 
pulling aabd4debf0c8... 100% ▕████████████████████████████████████████████████████▏ 1.1 GB                         
pulling c5ad996bda6e... 100% ▕████████████████████████████████████████████████████▏  556 B                         
pulling 6e4c38e1172f... 100% ▕████████████████████████████████████████████████████▏ 1.1 KB                         
pulling f4d24e9138dd... 100% ▕████████████████████████████████████████████████████▏  148 B                         
pulling a85fe2a2e58e... 100% ▕████████████████████████████████████████████████████▏  487 B                         
verifying sha256 digest 
writing manifest 
success 
>>> 完全沒事
<think></think>嗯,聽起來你有點放松的心態哦!如果有什么需要幫助的,盡管告訴我哦~ 😊
##再運行 Open WebUI
[root@web ~]# ls /data/ollama/webui/
cache  uploads  vector_db  webui.db
[root@web ~]# rm -rf /data/ollama/webui/*
[root@web ~]# ls /data/ollama/models/
[root@web ~]# 
[root@web ~]# ip a |grep eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000inet 192.168.88.100/24 brd 192.168.88.255 scope global dynamic noprefixroute eth0
[root@web ~]# 
[root@web ~]# docker run -d -p 8080:8080 -e ENABLE_OPENAI_API=false -e  \
> OLLAMA_BASE_URL=http://192.168.88.100:11434 -e HF_HUB_OFFLINE=1 -v  \
> /data/ollama/models:/root/.ollama -v /data/ollama/webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
67f7aa47702a3ef788aada1ff8bc8593fa56ad434348fcfc605d2fd0dabbf800
[root@web ~]# docker ps 
CONTAINER ID   IMAGE                                COMMAND               CREATED          STATUS                            PORTS                                           NAMES
67f7aa47702a   ghcr.io/open-webui/open-webui:main   "bash start.sh"       5 seconds ago    Up 4 seconds (health: starting)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp       open-webui
9bffbe3d736d   ollama/ollama:latest                 "/bin/ollama serve"   11 minutes ago   Up 11 minutes                     0.0.0.0:11434->11434/tcp, :::11434->11434/tcp   ollama

測試訪問

  • http://192.168.88.100:8080? ? ? --以下IP均為88.100的公網IP地址

ollama工具啟動并允許所有設備連接

##重新啟動ollama工具;設置參數[允許所有主機連接]
[root@project ~]# killall ollama
[root@project ~]# OLLAMA_HOST=0.0.0.0 ollama start &
[1] 33739

安裝harbor

##安裝harbor
[root@web ~]# yum install -y yum-utils
[root@web ~]# yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
[root@web ~]# yum install docker-ce
[root@web ~]# systemctl enable docker --now
[root@harbor ~]# wget https://github.com/docker/compose/releases/download/1.25.0/docker-compose-Linux-x86_64
##上傳文件
[root@harbor ~]# ll
total 16636
-rw-r--r-- 1 root root 17031320 Jul 21 19:08 docker-compose-Linux-x86_64
[root@harbor ~]# mv docker-compose-Linux-x86_64 /usr/bin/docker-compose
[root@harbor ~]# chmod +x /usr/bin/docker-compose
[root@harbor ~]# docker-compose version
docker-compose version 1.25.0, build 0a186604
docker-py version: 4.1.0
CPython version: 3.7.4
OpenSSL version: OpenSSL 1.1.0l  10 Sep 2019
##上傳文件;安裝harbor服務器
##[root@harbor ~]#  wget https://github.com/goharbor/harbor/releases/download/v2.5.3/harbor-offline-installer-v2.5.3.tgz
[root@harbor ~]# ll
total 644548
-rw-r--r-- 1 root root 660014621 Jul 21 19:11 harbor-offline-installer-v2.5.3.tgz
[root@harbor ~]# tar -xf harbor-offline-installer-v2.5.3.tgz 
[root@harbor ~]# cd harbor/
[root@harbor harbor]# ll
total 647840
-rw-r--r-- 1 root root      3361 Jul  7  2022 common.sh
-rw-r--r-- 1 root root 663348871 Jul  7  2022 harbor.v2.5.3.tar.gz
-rw-r--r-- 1 root root      9917 Jul  7  2022 harbor.yml.tmpl
-rwxr-xr-x 1 root root      2500 Jul  7  2022 install.sh
-rw-r--r-- 1 root root     11347 Jul  7  2022 LICENSE
-rwxr-xr-x 1 root root      1881 Jul  7  2022 prepare
[root@harbor harbor]# docker load -i harbor.v2.5.3.tar.gz
# 創建 https 證書
[root@harbor harbor]# mkdir tls
[root@harbor harbor]# openssl genrsa -out tls/cert.key 2048
[root@harbor harbor]# openssl req -new -x509 -days 3650 \-key tls/cert.key -out tls/cert.crt \-subj "/C=CN/ST=BJ/L=BJ/O=Tedu/OU=NSD/CN=harbor"[root@harbor harbor]# mv harbor.yml.tmpl harbor.yml
[root@harbor harbor]# vim harbor.yml
hostname: harborhttps:# https port for harbor, default is 443port: 443# The path of cert and key files for nginxcertificate: /root/harbor/tls/cert.crtprivate_key: /root/harbor/tls/cert.keyharbor_admin_password: 123456
[root@harbor harbor]# ./prepare #檢查配置是否正常
Successfully called func: create_root_cert
Generated configuration file: /compose_location/docker-compose.yml
Clean up the input dir
# 創建并啟動項目
[root@harbor harbor]# docker compose -f docker-compose.yml up -d
[root@harbor harbor]# docker ps
[root@harbor harbor]# chmod 0755 /etc/rc.d/rc.local
[root@harbor harbor]# echo "/usr/bin/docker compose -p harbor start" >>/etc/rc.d/rc.local

?新建項目

?推送ollama鏡像到harbor倉庫

[root@web ~]# vim /etc/hosts
[root@web ~]# tail -1 /etc/hosts
192.168.88.30 harbor
[root@web ~]# vim /etc/docker/daemon.json
[root@web ~]# cat /etc/docker/daemon.json
{"registry-mirrors": ["https://harbor:443"],"insecure-registries":["harbor:443"]
}
[root@web ~]# systemctl restart docker
[root@web ~]#  docker login harbor:443
Username: admin
Password: 
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded
[root@web ~]# docker images
REPOSITORY                      TAG       IMAGE ID       CREATED        SIZE
ollama/ollama                   latest    676364f65510   4 months ago   3.48GB
ghcr.io/open-webui/open-webui   main      ab78641aa87a   5 months ago   4.46GB
[root@web ~]# docker tag ollama/ollama:latest harbor:443/ollama/ollama:latest
[root@web ~]# docker push harbor:443/ollama/ollama:latest
The push refers to repository [harbor:443/ollama/ollama]
d4300076d0eb: Pushed 
1fdc8c80e260: Pushed 
ae8280b0d22b: Pushed 
fffe76c64ef2: Pushed 
latest: digest: sha256:2831b76e76d2dff975e98ff02d0b2bcca50d62605585e048fba3aaa5cdf88d84 size: 1167

查看?

打開k8s集群三個主機?【k8s集群安裝,參考k8s文檔】

-----------------------k8s部署ollama
##查看節點運行情況
[root@master ~]# kubectl get node 
NAME     STATUS   ROLES           AGE     VERSION
master   Ready    control-plane   5m46s   v1.28.15
node1    Ready    <none>          4m32s   v1.28.15
node2    Ready    <none>          4m17s   v1.28.15
##所有節點,均修改hosts文件
[root@node1 ~]# tail -1f /etc/hosts
192.168.88.30   harbor
##所有節點,在容器中修該harbor認證
[root@master ~]#  vim /etc/containerd/config.toml
154 行新插入:[plugins."io.containerd.grpc.v1.cri".registry.mirrors."harbor:443"]endpoint = ["https://harbor:443"][plugins."io.containerd.grpc.v1.cri".registry.configs."harbor:443".tls]insecure_skip_verify = true
[root@master ~]# systemctl restart containerd
##創建ollama的pod
[root@master ~]# mkdir ollama
[root@master ~]# cd ollama
[root@master ollama]# vim ollama-pv.yaml
[root@master ollama]# vim ollama-pvc.yaml
[root@master ollama]# vim ollama.yaml
[root@master ollama]# cat ollama-pv.yaml 
---
kind: PersistentVolume
apiVersion: v1
metadata:name: ollama-pv
spec:volumeMode: FilesystemaccessModes:- ReadWriteOncecapacity:storage: 30GipersistentVolumeReclaimPolicy: RetainhostPath:path: /data/ollamatype: DirectoryOrCreate
[root@master ollama]# cat ollama-pvc.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:name: ollama-pvc
spec:accessModes:- ReadWriteOnceresources:requests:storage: 20G
[root@master ollama]# cat ollama.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:name: ollamalabels:app: ollama
spec:replicas: 1selector:matchLabels:app: ollamatemplate:metadata:labels:app: ollamaspec:volumes:- name: model-storagepersistentVolumeClaim:claimName: ollama-pvccontainers:- name: ollamaimage: harbor:443/ollama/ollama:latestports:- containerPort: 11434volumeMounts:- mountPath: /modelsname: model-storage[root@master ollama]# kubectl apply -f ollama-pv.yaml 
persistentvolume/ollama-pv created
[root@master ollama]# kubectl apply -f ollama-pvc.yaml 
persistentvolumeclaim/ollama-pvc created
[root@master ollama]# kubectl get pvc
NAME         STATUS   VOLUME      CAPACITY   ACCESS MODES   STORAGECLASS   AGE
ollama-pvc   Bound    ollama-pv   30Gi       RWO                           99s
[root@master ollama]# kubectl get pv
NAME        CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                STORAGECLASS   REASON   AGE
ollama-pv   30Gi       RWO            Retain           Bound    default/ollama-pvc                           8m8s
[root@master ollama]# kubectl apply -f ollama.yaml 
deployment.apps/ollama created
[root@master ollama]# kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
ollama-5dfc6997f7-lz7ms   1/1     Running   0          68s##創建ollama的service
[root@master ~]# vim ollama_svc.yaml
[root@master ~]# cat ollama_svc.yaml
apiVersion: v1
kind: Service
metadata:name: ollamalabels:app: ollama
spec:type: NodePortports:- port: 11434targetPort: 11434protocol: TCPname: httpselector:app: ollama
[root@master ~]# kubectl apply -f ollama_svc.yaml 
service/ollama created
[root@master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
kubernetes   ClusterIP   172.0.0.1      <none>        443/TCP           7h51m
ollama       NodePort    172.8.89.171   <none>        11434:30948/TCP   6s[root@master ollama]# kubectl get pod -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP             NODE    NOMINATED NODE   READINESS GATES
ollama-5dfc6997f7-lz7ms   1/1     Running   0          4m11s   172.10.104.4   node2   <none>           <none>
[root@master ollama]# kubectl get svc -o wide
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE   SELECTOR
kubernetes   ClusterIP   172.0.0.1      <none>        443/TCP           8h    <none>
ollama       NodePort    172.8.89.171   <none>        11434:30948/TCP   23m   app=ollama
##88.1為master的IP地址
[root@master ollama]# curl 192.168.88.1:30948
Ollama is running
##列出可用的模型
[root@master ollama]# curl http://192.168.88.1:30948/api/tags
{"models":[]}
##拉取模型
[root@master ~]# curl -X POST http://192.168.88.1:30948/api/pull      -H 'Content-Type: application/json'      -d '{ "name": "deepseek-r1:1.5b"}'{"status":"verifying sha256 digest"}
{"status":"writing manifest"}
{"status":"success"}
##列出可用的模型
[root@master ollama]# curl http://192.168.88.1:30948/api/tags
...
{"models":[{"name":"deepseek-r1:1.5b","model":"deepseek-r1:1.5b","modified_at":"2025-07-22T16:53:58.774122157Z","size":1117322768,"digest":"e0979632db5a88d1a53884cb2a941772d10ff5d055aabaa6801c4e36f3a6c2d7","details":{"parent_model":"","format":"gguf","family":"qwen2","families":["qwen2"],"parameter_size":"1.8B","quantization_level":"Q4_K_M"}}]}
...
##運行模型
[root@master ollama]# curl -X POST http://192.168.88.1:30948/api/generate \
>      -H 'Content-Type: application/json' \
>      -d '{
>            "model": "deepseek-r1:1.5b",
>            "prompt": "你是誰",
>            "stream": false
>          }'
...
{"model":"deepseek-r1:1.5b","created_at":"2025-07-22T16:55:59.791737844Z","response":"\u003cthink\u003e\n\n\u003c/think\u003e\n\n您好!我是由中國的深度求索(DeepSeek)公司開發的智能助手DeepSeek-R1。如您有任何任何問題,我會盡我所能為您提供幫助。","done":true,"done_reason":"stop","context":[151644,105043,100165,151645,151648,271,151649,271,111308,6313,104198,67071,105538,102217,30918,50984,9909,33464,39350,7552,73218,100013,9370,100168,110498,33464,39350,10911,16,1773,29524,87026,110117,99885,86119,3837,105351,99739,35946,111079,113445,100364,1773],"total_duration":9225927714,"load_duration":1599434223,"prompt_eval_count":5,"prompt_eval_duration":579000000,"eval_count":40,"eval_duration":7035000000}
...
##在docker中運行ollama
[root@master ollama]# kubectl get svc
NAME         TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)           AGE
kubernetes   ClusterIP   172.0.0.1      <none>        443/TCP           9h
ollama       NodePort    172.8.89.171   <none>        11434:30948/TCP   94m
[root@web html]# rm -rf /data/ollama/models
[root@web html]# rm -rf /data/ollama/webui
##這里的ip和端口均為master的IP地址和端口
[root@web html]# docker run -d -p 8080:8080 -e ENABLE_OPENAI_API=false -e  \
> OLLAMA_BASE_URL=http://192.168.88.1:30948:11434 -e HF_HUB_OFFLINE=1 -v  \
> /data/ollama/models:/root/.ollama -v /data/ollama/webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
6dc36c9338a891230cc20588b495c8a61f4fec7bc836515dad6e4ebd8eb91e29
[root@web html]# docker ps
CONTAINER ID   IMAGE                                COMMAND           CREATED         STATUS                            PORTS                                       NAMES
6dc36c9338a8   ghcr.io/open-webui/open-webui:main   "bash start.sh"   6 seconds ago   Up 5 seconds (health: starting)   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   open-webui--------------------聊天機器人
[root@web ~]# cd /etc/nginx/
[root@web nginx]# \cp nginx.conf.default nginx.conf
[root@web nginx]# cd /usr/share/nginx/html/
[root@web html]# ll
total 20
-rw-r--r-- 1 root root 3332 Jun 10  2021 404.html
-rw-r--r-- 1 root root 3404 Jun 10  2021 50x.html
-rw-r--r-- 1 root root 3429 Jun 10  2021 index.html
-rw-r--r-- 1 root root  368 Jun 10  2021 nginx-logo.png
-rw-r--r-- 1 root root 1800 Jun 10  2021 poweredby.png
##把index.html,styles.css, script.js文件上傳
[root@web html]# ll
total 28
-rw-r--r-- 1 root root 3332 Jun 10  2021 404.html
-rw-r--r-- 1 root root 3404 Jun 10  2021 50x.html
-rw-r--r-- 1 root root  860 Jul 23 00:59 index.html
-rw-r--r-- 1 root root  368 Jun 10  2021 nginx-logo.png
-rw-r--r-- 1 root root 1800 Jun 10  2021 poweredby.png
-rw-r--r-- 1 root root 3474 Jul 23 00:59 script.js
-rw-r--r-- 1 root root 2718 Jul 23 00:59 styles.css
[root@web html]# vim  /etc/nginx/nginx.conf
[root@web html]# egrep -v "^#|^$|^\s+#"  /etc/nginx/nginx.conf
worker_processes  1;
events {worker_connections  1024;
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location /api/ {proxy_pass http://192.168.88.1:30948/;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $scheme;}error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}}
}
[root@web html]# systemctl restart nginx.service

測試

web主機IP

?報錯

  • 拉取大模型或運行大模型報錯

網絡問題,稍后重試?

  • pod已存在

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/93143.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/93143.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/93143.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Oracle 19C RU 19.28 升級和安裝

背景介紹 概述 本次升級包括安全漏掃中所有19c數據庫,漏掃預警版本19.3到19.27各個版本,數據庫需要升級至19.28版本滿足安全要求。 原端19C 升級目標端19.28 db_name racdb racdb ORACLE_SID racdb1/2 racdb1/2 ORACLE_HOME GI:/oracle/asm DB:/oracle/db GI:/orac…

嵌入式學習日志————對射式紅外傳感器計次

前言這是第二次學習這部分內容了&#xff0c;第一次是大一上學期&#xff0c;因為大二下忙著其他事一直沒來得及吧STM32學完&#xff0c;所以假期從頭開始再學&#xff0c;比第一次也有了更深的理解&#xff0c;以下內容均是看【STM32入門教程-2023版 細致講解 中文字幕】https…

ONLYOFFICE深度解鎖系列.13-如何復制、重新排序 PDF 頁面:onlyoffice 9.0.3 新功能

在處理合同、講義、研究資料或掃描文檔時&#xff0c;保持頁面順序井然尤為重要。有時文件頁數繁多、排序混亂或缺少邏輯&#xff0c;這不僅影響閱讀體驗&#xff0c;也不利于后續使用或分享。好消息是&#xff0c;借助 ONLYOFFICE PDF 編輯器&#xff0c;您可以輕松拖拽頁面&a…

vue遞歸樹形結構刪除不符合數據 生成一個新數組

首先看一下數據結構&#xff08;我的是路由菜單&#xff09;{"code": 200,"message": "請求成功!","success": true,"data": [{"startDate": null,"endDate": null,"createTime": "2023…

【機器學習之推薦算法】基于K最近鄰的協同過濾推薦與基于回歸模型的協同過濾推薦

基于K最近鄰的協同過濾推薦 基于K最近鄰的協同過濾推薦其實本質上就是MemoryBased CF&#xff0c;只不過在選取近鄰的時候&#xff0c;加上K最近鄰的限制。 這里我們直接根據MemoryBased CF的代碼實現 修改以下地方 class CollaborativeFiltering(object):based Nonedef __ini…

望言OCR視頻字幕提取2025終極評測:免費版VS專業版提全方位對比(含免費下載)

大家好&#xff0c;歡迎來到程序視點&#xff01;我是你們的老朋友.小二&#xff01;一、產品定位&#xff1a;AI時代的視頻字幕處理專家望言OCR作為專業的視頻硬字幕提取工具&#xff0c;在AI視頻處理領域占據重要地位。最新評測顯示&#xff0c;其免費版本依然保持著驚人的97…

Matplotlib(二)- Matplotlib簡單繪圖

文章目錄一、pyplot模塊介紹二、Matplotlib簡單繪圖1. 繪制折線圖1.1 折線圖介紹1.2 plt.plot()函數介紹1.3 繪制簡單折線圖1.3.1 繪制單條折線圖1.3.2 繪制多條折線圖1.4 示例&#xff1a;繪制天氣氣溫折線圖2. 繪制柱形圖2.1 柱形圖介紹2.2 plt.bar()函數介紹2.3 繪制柱形圖2…

【世紀龍科技】數字化技術解鎖新能源汽車電驅動總成裝調與檢修

隨著新能源汽車產業加速升級&#xff0c;電驅動總成裝調與檢修技術已成為職業院校汽車專業教學的核心挑戰。傳統實訓模式面臨設備投入高、更新周期長、高壓操作安全隱患多、教學與產業需求脫節等現實問題&#xff0c;導致學生實踐能力培養滯后于行業發展。如何通過數字化手段突…

springboot基于Java與MySQL庫的健身俱樂部管理系統設計與實現

用戶&#xff1a;注冊&#xff0c;登錄&#xff0c;健身教練&#xff0c;健身課程&#xff0c;健身器材&#xff0c;健身資訊&#xff0c;課程報名管理&#xff0c;教練預約管理&#xff0c;會員充值管理&#xff0c;個人中心管理員&#xff1a;登錄&#xff0c;個人中心&#…

如何修改debian的ip地址

編輯配置文件&#xff1a; sudo nano /etc/network/interfaces修改內容&#xff08;示例將 eth0 設為靜態IP&#xff09;&#xff1a; auto eth0 iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 gateway 192.168.1.1 dns-nameservers 8.8.8.8 8.8.4.4 #…

haproxy七層代理(知識點+相關實驗部署)

目錄 1.負載均衡介紹 1.1 什么是負載均衡 1.2 為什么用負載均衡 1.3 負載均衡類型 1.3.1 四層負載均衡 1.3.2 七層負載均衡 1.3.3 四層和七層的區別 2.haproxy簡介 2.1 haproxy主要特性 2.2 haproxy的優點與缺點 3.haproxy的安裝和服務信息 3.1 實驗環境 3.1.1 hap…

【集合】JDK1.8 HashMap 底層數據結構深度解析

一、核心數據結構&#xff1a;為什么是 "數組 鏈表 紅黑樹"&#xff1f;?HashMap 的底層設計本質是用空間換時間&#xff0c;通過哈希表的快速定位特性&#xff0c;結合鏈表和紅黑樹處理沖突&#xff0c;平衡查詢與插入效率。?1.1 基礎容器&#xff1a;哈希桶數組…

【element-ui】HTML引入本地文件出現font找不到/fonts/element-icons.woff

文章目錄目錄結構問題復現解決辦法目錄結構 |-web|- public|- lib|- ...|- index.htmlindex.html <!DOCTYPE html> <html> <head><meta charset"UTF-8"><!-- import CSS --><link rel"stylesheet" href"./public/…

Windows|CUDA和cuDNN下載和安裝,默認安裝在C盤和不安裝在C盤的兩種方法

本篇文章將詳細介紹在Windows操作系統中配置CUDA和cuDNN的步驟。通過本教程&#xff0c;您將能夠輕松完成CUDA和cuDNN的安裝、環境變量配置以及與深度學習框架&#xff08;如TensorFlow和PyTorch&#xff09;兼容性測試&#xff0c;從而為您的深度學習項目提供強大的硬件支持。…

Vue 項目動態接口獲取翻譯數據實現方案(前端處理語言翻譯 vue-i18n)

在大型多語言項目中&#xff0c;將翻譯數據硬編碼在項目中往往不夠靈活。通過接口動態獲取翻譯數據&#xff0c;并結合本地緩存提升性能&#xff0c;是更優的國際化實現方式。本文將詳細介紹如何在 Vue 項目中實現這一方案。 方案優勢 靈活性高&#xff1a;翻譯內容更新無需修改…

Mybatis-plus多數據源

適用于多種場景&#xff1a;純粹多庫、 讀寫分離、 一主多從、 混合模式等目前我們就來模擬一個純粹多庫的一個場景&#xff0c;其他場景類似場景說明&#xff1a;我們創建兩個庫&#xff0c;分別為&#xff1a; mybatis_plus&#xff08;以前的庫不動&#xff09;與my…

廣東省省考備考(第五十六天7.25)——常識:科技常識(聽課后強化訓練)

錯題解析解析解析解析解析解析解析解析解析標記題解析解析今日題目正確率&#xff1a;40%

RabbitMQ簡述

RabbitMQ簡述 RabbitMQ 是一個開源的 消息代理&#xff08;Message Broker&#xff09; 軟件&#xff0c;實現了 高級消息隊列協議&#xff08;AMQP&#xff09;&#xff0c;用于在分布式系統中存儲、轉發消息&#xff0c;支持異步通信、解耦服務、負載均衡和消息緩沖。 核心…

skywalking應用性能監控

1.skywalking描述 官方文檔 SkyWalking 是一個開源的可觀測性平臺&#xff0c;用于收集、分析、匯總和可視化來自服務及云原生基礎設施的數據。SkyWalking 為維護分布式系統的清晰視圖提供了簡便的方法&#xff0c;即使是在跨云環境中也能做到。它是一款專為云原生、基于容器的…

如何徹底清除服務器上的惡意軟件與后門

清除服務器上的惡意軟件與后門 是確保服務器安全的關鍵步驟。惡意軟件和后門可能導致數據泄露、性能下降&#xff0c;甚至服務器被攻擊者完全控制。以下是徹底清除惡意軟件與后門的詳細指南&#xff0c;包括 檢測、清理、修復與預防 的步驟。1. 徹底清除惡意軟件與后門的步驟1.…