【大模型】Ubuntu下 fastgpt 的部署和使用

前言

本次安裝的版本為 fastgpt:v4.8.8-fix2。
最新版本fastgpt:v4.8.20-fix2 問答時報錯,本著跑通先使用起來,就沒有死磕下去,后面bug解了再進行記錄。
?
github連接:https://github.com/labring/FastGPT
fastgpt 安裝說明:https://doc.tryfastgpt.ai/docs/development/docker/

1 fastgpt 工程部署


1.1 fastgpt的簡介

FastGPT 是一個基于大型語言模型(LLM)的知識庫問答系統,專注于高效對話和任務處理。以下是關于 FastGPT 的詳細介紹:

?
功能

  • 專屬 AI 客服:通過導入文檔或問答對進行訓練,AI 模型可以根據文檔內容以交互式對話方式回答問題。
  • 可視化工作流編排:基于 Flow 模塊,用戶可以設計復雜的工作流,實現自動化和智能化的處理流程。
  • 自動數據預處理:支持多種文檔格式(如 Word、PDF、Excel、Markdown 等)的導入,自動完成文本預處理、向量化和問答分割,節省手動訓練時間。
  • 強大的 API 集成:API 接口對齊 OpenAI 官方接口,可以輕松集成到企業微信、公眾號、飛書等平臺。
  • 多模型兼容性:支持 GPT、Claude、文心一言等多種 LLM 模型。

?
特點

  • 高效性:經過優化,能夠快速生成高質量內容,適合實時性要求較高的場景。
  • 開源性:遵循附加條件的 Apache License 2.0 開源協議,用戶可以進行二次開發。
  • 個性化與定制化:可以根據具體業務需求定制訓練,調整語言風格、語氣或行業專用術語。
  • 數據處理能力強:能夠整合大量非結構化數據,自動優化答案質量和查詢效率。
  • 用戶友好:對話流暢,具備自然的語義理解能力,適合長對話和復雜任務。

1.2 工程所需前置環境

服務器的配置:ubuntu 22.04、Tesla V100-SXM2-32GB、CUDA Version12.2

lsb_release -a
nvidia-smi

在這里插入圖片描述
fastgpt的安裝和使用的前提環境:

  • docker 的安裝:參考 【環境配置】ubuntu中 Docker的安裝
  • LLMs 的語言大模型:deepseek-r1:32b。參考鏈接 【大模型】Ubuntu下安裝ollama,DeepSseek-R1:32b的本地部署和運行
  • 向量模型:m3e-large。參考鏈接 【大模型】Xinference的安裝和部署。當然向量模型也可以選擇ollama啟動bge-large模型。
    ?

1.3 fastgpt 的配置文件

yml 文件和 json 文件的最新版本下載,參考鏈接 https://doc.tryfastgpt.ai/docs/development/docker/ 中給出了下載命令如下。

mkdir fastgptcd fastgpt
curl -O https://raw.githubusercontent.com/labring/FastGPT/main/projects/app/data/config.json# pgvector 版本(測試推薦,簡單快捷)
curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-pgvector.yml
# milvus 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-milvus.yml
# zilliz 版本
# curl -o docker-compose.yml https://raw.githubusercontent.com/labring/FastGPT/main/files/docker/docker-compose-zilliz.yml

?
個人使用該版本在使用時報錯。所以這里直接給出 fastgpt:v4.8.8-fix2 使用的 yml 和json 的文件,將其放置在路徑fastgpt下。
?
config.json】 文件內容如下。

  • 其中 llmModels中,填寫自己調用的chat模型的信息。直接復制已有的內容,然后修改 modelname 的內容。
  • vectorModels 中,填寫自己調用的向量模型。與上相同,直接復制已有的內容,然后修改 modelname 的內容。
{"feConfigs": {"lafEnv": "https://laf.dev"},"systemEnv": {"vectorMaxProcess": 15,"qaMaxProcess": 15,"pgHNSWEfSearch": 100},"llmModels": [{"model": "deepseek-r1:32b","name": "deepseek-r1:32b","avatar": "/imgs/model/deepseek.svg","maxContext": 128000,"maxResponse": 128000,"quoteMaxToken": 32000,"maxTemperature": 1.2,"charsPointsPrice": 0,"censor": false,"vision": false,"datasetProcess": true,"usedInClassify": true,"usedInExtractFields": true,"usedInToolCall": true,"usedInQueryExtension": true,"toolChoice": false,"functionCall": false,"customCQPrompt": "","customExtractPrompt": "","defaultSystemChatPrompt": "","defaultConfig": {}}],"vectorModels": [// 如果需要多語言支持和高精度語義檢索,推薦 BGE-M3。// 如果主要處理中文文本,且資源受限,推薦 M3E。// 如果需要中英文混合處理且對精度要求較高,推薦 BGE-Large。{"model": "bge-large:latest","name": "bge-large:latest","charsPointsPrice": 0,"defaultToken": 256,"maxToken": 512,"weight": 100,"defaultConfig": {},"dbConfig": {},"queryConfig": {}},{"model": "m3e-large","name": "m3e-large","charsPointsPrice": 0,"defaultToken": 256,"maxToken": 512,"weight": 100,"defaultConfig": {},"dbConfig": {},"queryConfig": {}}],"reRankModels": [],"audioSpeechModels": [],"whisperModel": [  
]}

?
docker-compose.yml】 內容如下:
如果原本的鏡像下載過慢或者超時,將其注釋,再把下一行的阿里云鏡像解注釋。

# 數據庫的默認賬號和密碼僅首次運行時設置有效
# 如果修改了賬號密碼,記得改數據庫和項目連接參數,別只改一處~
# 該配置文件只是給快速啟動,測試使用。正式使用,記得務必修改賬號密碼,以及調整合適的知識庫參數,共享內存等。
# 如何無法訪問 dockerhub 和 git,可以用阿里云(阿里云沒有arm包)# version: '3.3'
services:# dbpg:image: pgvector/pgvector:0.7.0-pg15 # docker hub# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云container_name: pgrestart: alwaysports: # 生產環境建議不要暴露- 5432:5432networks:- fastgptenvironment:# 這里的配置只有首次運行生效。修改后,重啟鏡像是不會生效的。需要把持久化數據刪除再重啟,才有效果- POSTGRES_USER=username- POSTGRES_PASSWORD=password- POSTGRES_DB=postgresvolumes:- ./pg/data:/var/lib/postgresql/datamongo:image: mongo:5.0.18 # dockerhub# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云# image: mongo:4.4.29 # cpu不支持AVX時候使用container_name: mongorestart: alwaysports:- 27017:27017networks:- fastgptcommand: mongod --keyFile /data/mongodb.key --replSet rs0environment:- MONGO_INITDB_ROOT_USERNAME=myusername- MONGO_INITDB_ROOT_PASSWORD=mypasswordvolumes:- ./mongo/data:/data/dbentrypoint:- bash- -c- |openssl rand -base64 128 > /data/mongodb.keychmod 400 /data/mongodb.keychown 999:999 /data/mongodb.keyecho 'const isInited = rs.status().ok === 1if(!isInited){rs.initiate({_id: "rs0",members: [{ _id: 0, host: "mongo:27017" }]})}' > /data/initReplicaSet.js# 啟動MongoDB服務exec docker-entrypoint.sh "$$@" &# 等待MongoDB服務啟動until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; doecho "Waiting for MongoDB to start..."sleep 2done# 執行初始化副本集的腳本mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js# 等待docker-entrypoint.sh腳本執行的MongoDB服務進程wait $$!# fastgptsandbox:container_name: sandboximage: ghcr.io/labring/fastgpt-sandbox:v4.8.20-fix2 # git# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.8.20-fix2 # 阿里云networks:- fastgptrestart: alwaysfastgpt:container_name: fastgptimage: ghcr.io/labring/fastgpt:v4.8.8-fix2 # git# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.20-fix2 # 阿里云ports:- 3000:3000networks:- fastgptdepends_on:- mongo- pg- sandboxrestart: alwaysenvironment:# 前端訪問地址: http://localhost:3000- FE_DOMAIN=http://localhost:3000# root 密碼,用戶名為: root。如果需要修改 root 密碼,直接修改這個環境變量,并重啟即可。- DEFAULT_ROOT_PSW=1234# AI模型的API地址哦。務必加 /v1。這里默認填寫了OneApi的訪問地址。- OPENAI_BASE_URL=http://oneapi:3000/v1# AI模型的API Key。(這里默認填寫了OneAPI的快速默認key,測試通后,務必及時修改)- CHAT_API_KEY=sk-fastgpt# 數據庫最大連接數- DB_MAX_LINK=30# 登錄憑證密鑰- TOKEN_KEY=any# root的密鑰,常用于升級時候的初始化請求- ROOT_KEY=root_key# 文件閱讀加密- FILE_TOKEN_KEY=filetoken# MongoDB 連接參數. 用戶名myusername,密碼mypassword。- MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin# pg 連接參數- PG_URL=postgresql://username:password@pg:5432/postgres# sandbox 地址- SANDBOX_URL=http://sandbox:3000# 日志等級: debug, info, warn, error- LOG_LEVEL=info- STORE_LOG_LEVEL=warn# 工作流最大運行次數- WORKFLOW_MAX_RUN_TIMES=1000# 批量執行節點,最大輸入長度- WORKFLOW_MAX_LOOP_TIMES=100# 自定義跨域,不配置時,默認都允許跨域(多個域名通過逗號分割)- ALLOWED_ORIGINS=# 是否開啟IP限制,默認不開啟- USE_IP_LIMIT=falsevolumes:- ./config.json:/app/data/config.json# oneapimysql:# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 # 阿里云image: mysql:8.0.36container_name: mysqlrestart: alwaysports:- 3306:3306networks:- fastgptcommand: --default-authentication-plugin=mysql_native_passwordenvironment:# 默認root密碼,僅首次運行有效MYSQL_ROOT_PASSWORD: oneapimmysqlMYSQL_DATABASE: oneapivolumes:- ./mysql:/var/lib/mysqloneapi:container_name: oneapiimage: ghcr.io/songquanpeng/one-api:v0.6.7# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 # 阿里云ports:- 3001:3000depends_on:- mysqlnetworks:- fastgptrestart: alwaysenvironment:# mysql 連接參數- SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi# 登錄憑證加密密鑰- SESSION_SECRET=oneapikey# 內存緩存- MEMORY_CACHE_ENABLED=true# 啟動聚合更新,減少數據交互頻率- BATCH_UPDATE_ENABLED=true# 聚合更新時長- BATCH_UPDATE_INTERVAL=10# 初始化的 root 密鑰(建議部署完后更改,否則容易泄露)- INITIAL_ROOT_TOKEN=fastgptvolumes:- ./oneapi:/data
networks:fastgpt:

1.4 啟動容器

在路徑fastgpt下的終端運行

docker compose up -d

待結束后,查看容器情況。結果如下則說明工程正確啟動。
在這里插入圖片描述
?

過程中可能遇到錯誤

  1. 現象:端口 3306 被占用:
    在這里插入圖片描述
    問題查看:使用下面命令查看端口被占用情況。
    發現端口 3306 被本地的 mysqld 進程(PID 1203)占用了。這是一個獨立的 MySQL 服務,運行在宿主機上,而不是 Docker 容器中。

    sudo lsof -i :3306
    

    解決:停止宿主機上的 MySQL 服務。然后重新啟動容器

    sudo systemctl stop mysql  
    # sudo kill -9 1203  (或者直接殺掉進程)docker compose up -d
    
  2. oneapi沒有啟動起來:
    該問題個人沒有遇到。但較多人遇到過,這里記錄下解決方法:

    # 等待10s,OneAPI第一次總是要重啟幾次才能連上Mysql
    sleep 10
    # 重啟一次oneapi(由于OneAPI的默認Key有點問題,不重啟的話會提示找不到渠道,臨時手動重啟一次解決)
    docker restart oneapi
    

2 oneapi 配置


2.1 oneapi 的簡介

OneAPI 是一個統一的接口管理與分發系統,旨在通過提供一個單一、統一的接口,簡化對多個后端服務或數據源的訪問。
它具備以下核心功能和特點:
?

核心功能

  • 集中式 API 密鑰管理:
    提供集中式的 API 密鑰管理和二次分發功能,確保安全性和靈活性。
    支持令牌的過期時間、額度和 IP 范圍管理。
  • 多系統功能整合:
    將來自不同系統的功能和服務整合在一起,開發者只需與一個接口交互,無需分別處理多個不同的 API。
    支持多種主流 AI 模型和服務,包括 OpenAI、百度文心一言、阿里通義千問等。
  • 簡化開發與管理:
    簡化開發過程,提高開發效率。
    便于維護和管理,支持動態更新和跨平臺同步。
    ?

特點

  • 一鍵部署:
    打包成單個可執行文件,提供 Docker 鏡像,實現一鍵部署和開箱即用的便捷體驗。
    支持多種部署方式,包括本地部署、Docker 部署和面板部署。
  • 適用場景:
    適用于企業、開發者和研究者,簡化多 AI 服務的接入和管理。
    支持負載均衡、流式傳輸和多機部署,提升系統可用性和性能。

2.2 oneapi 的配置

在瀏覽器訪問 http://127.0.0.1:3001,使用默認賬號 root 和密碼 123456 登錄。
在這里插入圖片描述

2.2.1 oneapi 的渠道

OneAPI 的渠道管理功能允許用戶將不同的大模型 API(如 OpenAI、百度文心一言、阿里通義千問等)統一接入到 OneAPI 平臺中。每個渠道對應一個 API Key,用戶可以通過以下步驟添加和管理渠道。

  • ollama部署的模型 的oneapi的渠道配置
    在控制臺中點擊【渠道】選項卡,選擇【添加新的渠道】。
    在這里插入圖片描述
    然后界面如下圖:
    在這里插入圖片描述
    • 類型】選擇對應的模型類型 ollama。
    • 名稱】自定義渠道名稱。這里填寫了【ollama】。
    • 模型】選擇或填入支持的模型。若是填入的方式,一定注意名稱的正確填寫,可使用命令【ollama list】查看ollama下載的模型。這里填寫【deepseek-r1:32b、bge-large:latest】
      在這里插入圖片描述
    • 密鑰】這里是本地部署的模型,密鑰隨便填寫。
    • 代理】這里填寫部署ollama模型的地址。
    • 提交】點擊“提交”完成渠道添加。
      ?
      測試】如下圖,配置正確的話,點擊綠色框的測試,界面會彈出 “測試成功” 的字樣。
      需要注意的是,如果僅添加向量模型,這里是無法測試通的。
      在這里插入圖片描述
      ?
  • xinference 部署的模型 的oneapi的渠道配置
    在這里插入圖片描述

2.2.2 oneapi 的令牌

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
復制這里的令牌。

3 fastgpt 的基本使用


3.1 fastgpt 的重啟

  1. 在 文件 docker-compose.yml 中,搜索 CHAT_API_KEY,將前面復制的令牌粘貼到這里
          # AI模型的API Key。(這里默認填寫了OneAPI的快速默認key,測試通后,務必及時修改)- CHAT_API_KEY=sk-fastgptsk-enxd9BewOzi0eaoGB2AdD5BdEf834a5e9b0e269780703dD8
    
  2. 重啟容器
    docker compose down
    docker compose up -d
    

重啟了后,就可以在服務器中訪問 http://127.0.0.1:3000,使用默認賬號 root 和密碼 1234 登錄。
登錄后界面如下圖。功能測試主要在左側的【工作臺】【知識庫】。操作流程如下。


3.2 知識庫

  1. 新建知識庫,【+新建】、【知識庫】、【通用知識庫】、命名、選擇配置好的向量模型。
    在這里插入圖片描述
    在這里插入圖片描述
  2. 成功后界面左側,【數據集】【搜索測試】【配置】三項。
    【數據集】界面中,右上角【新建/導入】、這里測試【文本數據集】、【本地文件】… 后續的操作流程如下圖所示
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
    在這里插入圖片描述
  3. 文件添加成功后,可以點進文件名稱,如上圖。點進去后,可以看到文檔分割成塊后的數據。通過這里的數據,可以看到分割的是否OK。
    在這里插入圖片描述
  4. 然后在【搜索測試】中,可以測試 問題檢索出好壞。在下圖中【語義檢索】中,可以進一步勾選,這里默認不變。
    在這里插入圖片描述
  5. 在【配置】中,可以修改模型的選擇。
    在這里插入圖片描述

3.3 工作臺

  1. 創建一個【簡易應用】。操作如下圖: 在這里插入圖片描述
    在這里插入圖片描述
  2. 配置關聯的知識庫,然后進行問答。如下圖
    在這里插入圖片描述
  3. 然后進行 應用發布,點擊右上角的【發布】
    在這里插入圖片描述
  4. 點擊【發布渠道】界面,然后【創建新鏈接】、【開始使用】、【復制鏈接】在瀏覽器中打開。
    在這里插入圖片描述
    在這里插入圖片描述
  5. 鏈接的界面下,進行問答。
    在這里插入圖片描述
  6. 若想其他電腦都能訪問,則需完成 在服務啟動時綁定到公網IP,開放防火墻端口等操作。

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

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

相關文章

【GenBI實戰】python腳本實現基于DeepSeek api的數據查詢和圖表可視化

寫在前面 生成式 BI (GenBI) 正在改變我們與數據交互的方式。它允許用戶使用自然語言提出問題,并自動獲得數據洞察,而無需編寫復雜的 SQL 查詢或手動創建圖表。本文將帶你動手實戰,使用 Python 和 DeepSeek API (或其他類似的大語言模型 API…

Web-to-Web和Server-to-Serve歸因方法

Web2Web 和 S2S 歸因方法 1. Web2Web 歸因方法 原理: Web2Web(Web-to-Web)歸因方法主要用于跟蹤用戶在網站之間的行為路徑。它通過瀏覽器中的Cookie或其他標識符來追蹤用戶在不同網站之間的行為,從而確定用戶轉化的路徑。 使用…

c++中迭代器和指針有什么區別?

在 C 中,迭代器和指針雖然在某些場景下有相似的行為,但它們在設計目的、功能和使用場景上有本質區別。以下是詳細對比和最佳實踐: 一、核心區別對比表 特征指針迭代器本質原生數據類型,直接存儲內存地址類對象,抽象容…

如何使用Docker搭建哪吒監控面板程序

哪吒監控(Nezha Monitoring)是一款自托管、輕量級的服務器和網站監控及運維工具,旨在為用戶提供實時性能監控、故障告警及自動化運維能力。 文檔地址:https://nezha.wiki/ 本章教程,使用Docker方式安裝哪吒監控面板,在此之前,你需要提前安裝好Docker. 我當前使用的操作系…

ONLYOFFICE + Ollama,本地AI模型的高效集成方案

這篇文章將繼續探討如何在 ONLYOFFICE 中連接并高效使用各類 AI 模型。今天的主角是 Ollama——一個專為本地部署和運行 AI 模型的平臺。如何使用 Ollama 并與 ONLYOFFICE 編輯器集成,利用其強大的 AI 模型處理文本任務。以下是詳細的操作步驟和使用方法。 關于 ONL…

單片機開發為什么不用C++?

最近受到很多初學者的靈魂拷問,單片機需要學C嗎? 還別說,問這問題的還挺多的,今天以一篇文章來說下。 很多小白覺得,C語言這老古董,語法簡陋得像石器時代的產物,為什么還牢牢霸占著單片機開發的…

2025-02-28 學習記錄--C/C++-C語言 scanf 中,%s 不需要加

合抱之木,生于毫末;九層之臺,起于累土;千里之行,始于足下。💪🏻 C語言 scanf 中,%s 不需要加 & 格式化符號變量類型是否需要加 &原因%s字符數組不需要數組名本身就是指針&a…

數字樣機:從技術革新到產業賦能的演進之路

摘要:數字樣機作為產品全生命周期數字化的核心技術,旨在通過虛擬化建模與仿真技術重構傳統工業研發范式。 數字樣機(Digital Prototype,DP)技術是一種數字化設計技術,利用數字樣機替代原型樣機&#xff0c…

Ubuntu20.04安裝Isaac sim/ Isaac lab

2025年之后omniverse好像不能直接裝Isaac sim了,要跳轉到官網鏈接。 Isaac lab要在Isaac sim安裝之后才能安裝 Ubuntu20.04安裝Isaac sim/ Isaac lab Isaac sim安裝Isaac lab安裝 Isaac sim安裝 找到官網 Isaac sim官方文檔 下載下來解壓到本地文件夾&#xff0c…

【前端】XML,XPATH,與HTML的關系

XML與HTML關系 XML(可擴展標記語言)和 HTML(超文本標記語言)是兩種常見的標記語言,但它們有不同的目的和用途。它們都使用類似的標記結構(標簽),但在設計上存在一些關鍵的差異。 XML…

8款智能排班系統,全面深入介紹

本文介紹了以下8款主流的排班系統:1.i人事;2.Moka; 3.When I Work; 4.薪人薪事; 5.泛微e-office; 6.多可軟件; 7.釘釘; 8.Homebase等。 排班系統作為一種高效的管理工具,…

DeepSeek 助力 Vue3 開發:打造絲滑的頁腳(Footer)

前言:哈嘍,大家好,今天給大家分享一篇文章!并提供具體代碼幫助大家深入理解,徹底掌握!創作不易,如果能幫助到大家或者給大家一些靈感和啟發,歡迎收藏關注哦 💕 目錄 Deep…

SpringCloud 微服務框架

單體架構:將業務全部功能集中到一個項目中,打成一個war包存儲,部署在一臺服務器中,只有一個數據庫 優點 :架構簡單,部署成本低。適合小型項目 問題:高并發性能問題,開發時代碼耦合問題&#x…

goLand導入git項目并打包發布linux

作為項目管理,擁有半吊子開發能力,居然有一天需要修改維護go項目。。。從菜鳥教程學習開始~苦 goland導入git項目 本地啟動 導入之后會自動更新相關依賴。 本人導入之后立馬修改了依賴位置,且修改為一項目一位置,互不干涉。 在代…

通義靈碼插件安裝入門教學 - IDEA(安裝篇)

在開發過程中,使用合適的工具和插件可以極大地提高我們的工作效率。今天,我們將詳細介紹如何在 IntelliJ IDEA 中安裝并配置通義靈碼插件,這是一款旨在提升開發者效率的實用工具。無論你是新手還是有經驗的開發者,本文都將為你提供…

【設計模式精講】開源實戰之剖析Spring框架:Spring中工廠模式的應用

文章目錄 第七章 開源實戰7.1 剖析Spring框架中用到的經典設計模式7.1.1 Spring中工廠模式的應用7.1.1.1 Spring中的Bean組件7.1.1.2 Spring中的BeanFactory7.1.1.3 Spring中的FactoryBean 個人主頁:道友老李 歡迎加入社區:道友老李的學習社區 第七章 開…

[數據結構]用棧實現隊列

思路分析 代碼實現: typedef int STDataType; typedef struct Stack {int* a;int top;//下標int capacity; }ST; //棧的初始化 void STInit(ST* ps); //棧的插入 void STPush(ST* ps, STDataType x); //棧的刪除 void STPop(ST* ps); // int STSize(ST* ps); //判斷…

C++ 17 允許在 for 循環,if 語句,switch 語句中初始化變量

看到 c 有這個特性,python 和 java 似乎都沒有,根據 AI 的回答進行了一些整理總結。 文章目錄 **1. 在 for 循環中初始化變量****特點****多個變量初始化** **2. 在 if 語句中初始化變量(C17 及以上)****示例****特點** **3. 在 s…

【云原生之kubernetes實戰】在k8s環境中高效部署Vikunja任務管理工具(含數據庫配置)

【【云原生之kubernetes實戰】在k8s環境中高效部署Vikunja任務管理工具(含數據庫配置) 前言一、Vikunja介紹1.1 Vikunja簡介1.2 Vikunja主要特點1.3 使用場景二、相關知識介紹2.1 本次實踐存儲介紹2.2 k8s存儲介紹三、本次實踐介紹3.1 本次實踐簡介3.2 本次環境規劃3.3 部署前…

分享一個常用的命名規則和Spring的命名風格

目錄 Spring 命名風格規范總結表 常用代碼命名單詞(通用且專業) 命名技巧 一、返回布爾值的方法 二、條件執行方法 三、異步處理方法 四、回調方法 五、集合操作方法 六、狀態校驗方法 七、對象生命周期方法 八、數據操作方法 Spring 命名風格規…