1. 項目基礎介紹
go-stock 是一個基于Wails和NaiveUI開發的AI賦能股票分析工具。旨在為用戶提供自選股行情獲取、成本盈虧展示、漲跌報警推送等功能。它支持A股、港股、美股等市場,能夠進行市場整體或個股的情緒分析、K線技術指標分析等功能。所有數據均保存在本地,同時支持多種AI大模型平臺,如DeepSeek、OpenAI、Ollama、LMStudio、AnythingLLM等。該項目旨在為用戶提供一個娛樂性和學習研究性的股票分析工具。
主要的編程語言:Go
2. 項目使用的關鍵技術和框架??
Go:項目的主體編程語言,用于構建后端邏輯。
Wails:一個用于快速構建跨平臺桌面應用程序的框架。
NaiveUI:一個基于Vue的UI庫,用于創建簡潔、優雅的用戶界面。
Vue:用于構建用戶界面的漸進式JavaScript框架。
AI大模型:集成AI分析股票功能,可能使用了如OpenAI、Ollama、LMStudio等AI平臺或模型。
3. 項目安裝和配置的準備工作與詳細步驟
準備工作
源碼:https://github.com/ArvinLovegood/go-stock,版本20250906-master
安裝Go語言環境,配置好GOPATH等環境變量。
安裝Git,用于克隆項目代碼。
安裝Node.js和npm,因為項目使用了Vue和NaiveUI。
對于Windows用戶,可能還需要安裝NSIS,用于生成安裝程序。
安裝步驟
3.1克隆項目
首先,下載源碼,使用Git克隆項目到本地:
git clone https://github.com/ArvinLovegood/go-stock.git
進入項目目錄,安裝Go語言依賴:
brew install go
用go version
查看當前go的版本號。go version go1.25.1 darwin/amd64
需要升級go語言版本的,輸入以下命令:
brew upgrade go
安裝項目依賴,會下載文件
cd go-stock
go mod tidy
3.2運行構建腳本
cd scripts/
sh ./build-macos-intel.sh 運行提示 Warning: go.mod is using Wails '2.10.1' but the CLI is 'v2.10.2'. ,所以最好wails安裝2.10.1版本
wails: command not found,安裝wails
go install github.com/wailsapp/wails/v2/cmd/wails@latest # 檢測wails是否安裝好,安裝成功后在~/go/bin目錄下會有wails文件
wails doctor提示:-bash: wails: command not found
設置環境變量
export PATH=$PATH:~/go/bin
failed to load config from /Users/sxf/go/go-stock/frontend/vite.config.js
? ? error during build:
Error [ERR_REQUIRE_ESM]: require() of ES Module /Users/sxf/go/go-stock/frontend/node_modules/unimport/dist/index.mjs not supported.
node.js版本太低,升級node到24.7.0
3.3安裝前端依賴:(忽略)
cd frontend
npm install
構建項目
構建前端資源:
cd frontend
npm run build
構建成功后將 ./go-stock/frontend/dist目錄下的文件放到web服務器上,
頁面js報錯,TypeError: Cannot read properties of undefined (reading 'EventsOnMultiple')
?
4.配置
根據項目需求,可能需要配置以下文件:
config.yaml:配置股票數據源、API密鑰等。
app.go:可能需要根據您的需求調整一些配置。
運行
4.運行構建后的程序:
/go-stock/build/bin/go-stock.app
運行后閃退,完美不成功。
按照以上步驟,您應該能夠成功安裝并運行go-stock項目。如果遇到任何問題,留言一起解決,或聯系開源作者交100進群學習。
下截官方zip包,解壓后運行正常
打開后什么都不用做,輸入股票代碼,關注即可
?
5.go-stock源碼解析
5.1.項目的目錄結構如下:
.github/: 存放GitHub特有的文件,如issue模板、actions配置等。
backend/: 項目后端代碼目錄,包含主要的業務邏輯。
build/: 構建腳本和配置文件,用于構建和打包項目。
frontend/: 項目前端代碼目錄,包含用戶界面和交互邏輯。
scripts/: 執行項目構建、測試等操作的腳本文件。
.gitignore: Git忽略文件列表,用于指定不需要提交到Git倉庫的文件和目錄。
CODE_OF_CONDUCT.md: 項目行為準則文件。
CONTRIBUTING.md: 項目貢獻指南,提供如何參與項目的說明。
LICENSE: 項目許可證文件,本項目采用Apache-2.0協議。
README.md: 項目介紹和說明文件。
SECURITY.md: 安全策略文件。
app.go: 項目主程序文件。
app_darwin.go: 為Darwin操作系統(如macOS)特定的程序文件。
app_linux.go: 為Linux操作系統特定的程序文件。
app_test.go: 測試代碼文件。
go.mod: Go語言依賴管理文件。
go.sum: Go依賴的校驗文件。
main.go: 主函數文件,用于啟動程序。
wails-naive.png: 項目圖標文件。
wails.json: Wails項目的配置文件。
?
5.2. 項目的啟動文件介紹
項目的主要啟動文件是main.go
。以下是main.go
文件的主要內容:
使用goland開發工具導入目錄go-stock,運行命令:go build go-stock
報錯:[FATAL]?? ?[go-stock/main.go:187]?? ?Wails applications will not build without the correct build tags.
調試時未發現代碼錯誤行數,有可能是數據庫沒有數據導致的
想辦法連接數據庫:文件路徑?/go-stock/data/stock.db,sqlite數據庫
表內都是空的,有點頭痛.
呵呵,方向錯了,搞定wails dev
5.3. 項目的配置文件介紹
項目的配置文件是wails.json
。以下是wails.json
文件的主要內容:前端調用后端的端口號
5.4.備注
調試
go get -u github.com/go-delve/delve/cmd/dlv
Wails
?項目中,打開?GoLand
?的「運行/調試配置」,點擊「+」,選擇「Go Build」,然后在「運行種類」中選擇「軟件包」,在「環境」中輸入?export CGO_LDFLAGS="-framework UniformTypeIdentifiers"
?,在「?Go
?工具實參」中輸入?-tags dev -gcflags "all=-N -l"
-tags=dev -gcflags="all=-N -l" -ldflags="-framework UniformTypeIdentifiers"
依然有問題