[ai]使用Ollama本地部署Deepseek模型

安装Ollama

下载

修改环境变量

ollama 部署和配置

# api 服务监听地址 允许外网访问
OLLAMA_HOST=0.0.0.0:1234
# 允许跨域访问
OLLAMA_ORIGINS=*

启动Ollama

ollama serve

下载模型

模型名称 Ollama Library
比如我希望安装 deepseek-r1 1.5b 版本(这是dp最小的模型了,设备要求较低)

ollama run deepseek-r1:1.5b

安装webui

  • 安装脚本
    
    cd %~dp0\ollama-webui
    call npm config set registry http://mirrors.cloud.tencent.com/npm/
    call npm install
    call npm install -g vite
 * 修改ollama-webui\src\lib\constants.ts

export const OLLAMA_API_BASE_URL = `http://你的域名:11434/api`;;

*  运行webui
```bat
cd %~dp0\ollama-webui
call npm run dev

[TightVNC]Windows下的Mac远程桌面

安装包:TightVNC
文章来源:TightVNC For Windows命令行说明

TightVNC服务器可以完全通过命令行配置、启动或停止。用户界面中的所有设置又可以通过下面列出的CLI选项进行修改。另外,命令行界面使的只共享或显示一个特定的窗口成为可能,而不是显示整个桌面。

如何通过命令行界面执行命令
命令行选项被tvnserver.exe文件接受,这个文件的默认路径为"C:\Program Files\TightVNC\tvnserver.exe"。

在命令行中指定的程序选项遵循以下一般规则:

服务器一次只接收一个命令
命令名以破折号开头,例如-help
如果有,命令参数与命令之间用空格分隔
包含空格的参数必须用引号括起来
命令名和参数不区分大小写

命令描述
以下命令格式被使用:

大括号"{}"中包含且被竖线"|"分隔的选项代表一组用户选项。选择一个并运行命令。
例如,tvnserver.exe { -controlservice | -controlapp }等同于:

tvnserver.exe -controlservice
tvnserver.exe -controlapp
可选参数被中括号"[]"指定。
例如,tvnserver.exe -install [ -silent ]等同于:

tvnserver.exe -install
tvnserver.exe -install -silent

命令用法
复制代码
tvnserver.exe -help

tvnserver.exe [ -run ]

tvnserver.exe { -install | -reinstall | -remove | -start | -stop } [ -silent ]

tvnserver.exe { -controlservice | -controlapp }

tvnserver.exe { -controlservice | -controlapp } { -connect HOST | -disconnectall | -reload | -shutdown | -sharefull | -shareprimary | -sharedisplay DISPALY_NUMBER | -sharerect WIDTHxHEIGHT+LEFT+TOP | -sharewindow CAPTION | -shareapp PROCESS_ID } [ -passfile FILE ]

tvnserver.exe { -configservice | configapp }
复制代码

命令行选项
tvnserver.exe -help
显示TightVNC Server帮助消息。
tvnserver.exe [ -run ]
以application应用模式运行TightVNC Server
复制代码
tvnserver.exe { -install | -reinstall | -remove | -start | -stop } [ -silent ]
管理以service服务模式启动的TightVNC Server。如果不希望TightVNC Server显示任何消息,添加-silent选项
命令 参数 描述
-install 注册TightVNC Server为一个系统服务
-reinstall 注销TightVNC Server为系统服务,然后重新注册。
-remove 注销TightVNC Server为系统服务
-start 启动TightVNC Server为一个系统服务
-stop 停止TightVNC Server为系统服务
复制代码
复制代码
tvnserver.exe { -controlservice | -controlapp }
打开正在运行的TightVNC Server的配置窗口。服务器配置的改动将在提交后立即生效。
命令 参数 描述
-controlservice 打开TightVNC Server配置窗口(service模式)
-controlapp 打开TightVNC Server配置窗口(application模式)
复制代码
复制代码
tvnserver.exe { -controlservice | -controlapp } COMMAND [ -passfile FILE ]
在运行TightVNC Server时执行命令。由于你可能同时以application应用模式和service服务模式运行了TightVNC Server,你必须要指明个服务来执行该命令。若是service服务模式,则使用-controlservice;若是应用模式,则使用-controlapp选项。还要注意,服务器并不报告它所执行操作的状态。
如果该服务受administrative管理密码保护,且tvnserver.exe无法访问存储此密码的windows注册表,则需要加上-passfile选项。作为一个参数,该选项接受具有所需密码的文件路径。此文件中存储的密码应该是ASCI(7 bit)字符.

命令 参数 描述
-connect HOST[:PORT]
连接一个以listening启动的viewer(反向连接);

如果没有指定端口,则server自动连接到5500端口的host;

注意:如果连接未建立,没有通知

-disconnectall 断开所有viewer与server的连接。
-reload 从Windows注册表更新运行TightVNC Server的设置。
-shutdown 退出server
-sharefull
共享虚拟桌面,它由运行TightVNC Server的机器的所有物理显示组成;

如果虚拟桌面配置被修改,则共享屏幕区域自动更新。

注意:这是TightVNC服务器启动时的默认行为。

-shareprimary 共享主显示器(display 1)
-sharedisplay DISPLAY_NUMBER 共享指定序号的显示器。如果所给序号的显示器不存在,则维度为0的屏幕将被发送(经试验,显示黑屏,内容为空)
-sharerect WIDTHxHEIGHT+LEFT+TOP
共享指定参数大小的桌面矩形区域。如果一个区域超出虚拟桌面,则该共享区域将会受到虚拟桌面边界的限制。

点(0,0)是主显示器的左上角。因此,如果一个区域位于原点的左侧或上方,则需要使用负值。

例如,如果你有如下的显示器配置:

并且,如果希望共享到分辨率为1280x1024的第二个显示器,可以使用“1280x1024+-1280+0”字符串作为参数。

如果修改了虚拟桌面的配置,共享屏幕区域将自动更新。

-sharewindow CAPTION
共享首个标题与指定值匹配或部分匹配的窗口。位于该共享窗口以上的其他窗口也对viewer可见。

如果具有此标题的窗口不存在或被最小化,则viewer将收到一个维度为0的屏幕;相反,如果指定标题的窗口在桌面上,则会自动共享。

-shareapp PROCESS_ID
共享指定进程ID的应用程序的所有窗口。共享屏幕区域的大小等于虚拟桌面的大小。不过,所有与应用程序无关的区域,包括位于共享窗口和任务栏上方的窗口,都将变暗。

如果具有给定PID的应用程序不存在或已经关闭,viewer将收到一个变暗的虚拟桌面屏幕。如果具有给定PID的应用程序再次出现在系统中,它也不会被共享。

-reload,-sharefull,-shareprimary,-sharedispllay,-sharewindow,-shareapp 这些命令在图形用户界面中没有类似的东西,它们只能通过命令行接口执行。
复制代码
tvnserver.exe { -configservice | -configapp }
打开脱机TightVNC Server配置。与服务器是否正在运行无关,因为更改是直接写到Windows注册表的,绕过了TightVNC服务器。服务器在启动时或通过-reload命令更新其配置。

PalWorld单机存档迁移至服务器存档

整理了迁移工具

整合包下载地址:palworld-host-save-fix-main

依赖以下项目

  1. palworld-host-save-fix大神写的帕鲁存档批量替换id的项目
  2. uesave虚幻引擎的存档读取器

迁移的流程是

  1. 在服务器新建存档,所有玩家都按顺序进来,服主需要记下每个人的新ID
  2. 在单机获取存档,并替换服务器的存档Level.savLevelMeta.sav
  3. 复制单机存档Players到服务器存档Players目录
  4. 调整脚本1执行脚本.bat修改存档地址、玩家新老ID
  5. 执行脚本

执行脚本内容

set DIR=%~dp0
set DIR_TOOL=%DIR%

::目标存档地址 一般是服务器新建的空存档
set DIR_SAVE=%DIR%\304E408F43FDFF861E8B5AB8FBC9843F

::需要迁移的存档   最后两个参数分别是 新ID  老ID
set NEW_ID=DCD1A0D2000000000000000000000000
set OLD_ID=00000000000000000000000000000001

::执行替换脚本
python %DIR_TOOL%\fix-host-save.py "%DIR_TOOL%\uesave.exe" "%DIR_SAVE%" %NEW_ID% %OLD_ID% 

Proxifier+3Proxy搭建内网代理服务器

Proxifier:HA-Proxifier329-破解版
3Proxy:3proxy-0.9.4-x64

启动流程

在服务器用3Proxy脚本启动服务

  1. 修改3proxy-0.9.4-x64\bin64\3proxy.cfg
# 超时的时间值
timeouts 1 5 30 60 180 1800 15 60

# 在windows上作为服务启动
service

# 内部IP地址,不可使用127.0.0.1,要具体地址,这里填写proixifer能连接的ip,如果是外网填公网ip,内网填客户端能ping到的ip
internal 23.23.23.236

#################################
#### socks4/4.5/5 proxy setting
#################################
#无认证
auth none
flush
# 允许所有你配置的用户连接
allow *

# 这里手动指定端口1080
socks -p1180
  1. 运行3proxy-0.9.4-x64\bin64\启动服务.bat

  2. 如果发现没有错误,说明配置没问题,可以尝试在客户端使用proxifier

  3. 另外可以注册为系统服务
    3proxy-0.9.4-x64\bin64\注册系统服务.bat
    3proxy-0.9.4-x64\bin64\取消注册系统服务.bat

    在客户端使用proxifier添加服务器

  4. 配置文件>代理服务器>添加代理服务器
    使用上述internal的ip地址、端口进行测试,通过就可以保存

  5. 配置文件>代理规则
    新增规则,描述目标主机比如我们内网10.*开头,动作使用刚才填的代理服务器

Spine转换版本

准备工具

skeletonviewer 下载
skeletonviewer 查看Github

导出脚本

  1. 查看skeleton.json的版本,比如spine3.6,那么下载对应的skeletonviewer
  2. 查看对应版本的源码JsonRollback.java文件,看参数要求

以3.6为例

导出后的文件支持spine3.3~2.7,需要注意文件的描述文件还是spine3.6

set viewer="skeletonViewer-3.6.53.jar"
set file="skeleton.json"
set out="skeleton.3.3.json"
java -cp %viewer% com.esotericsoftware.spine.JsonRollback %file% %out%

更高版本

可以控制导出文件的spine版本

set viewer="skeletonViewer.jar"
set version="3.3"
set file="skeleton.json"
set out="skeleton.3.3.json"
java -cp %viewer% com.esotericsoftware.spine.JsonRollback %file% %version% %out%

安装node最佳实践

1. 安装nvm

方法1(有梯子推荐):

winget install "NVM for Windows"

方法2:

nvm中文网下载安装文件

2. 安装指定版本node

查询支持版本
nvm list available
启用nvm
nvm on
安装指定版本
nvm install 12.1.0
切换版本
nvm use 16.16.0

3. 注意事项

如果之前已经安装好node了,那么需要把环境变量Path指向npm和nodejs的删掉,保留下面两项
NVM_HOME
NVM_SYMLINK

记一次sass-loader深坑

众所周知sass-loader需要依赖node-sass,但是往往版本对不上号,排查过程如下

1. 检查node版本

node -v
node-sass的页面有对应的版本

NodeJS Supported node-sass version Node Module
Node 17 7.0+ 102
Node 16 6.0+ 93
Node 15 5.0+, <7.0 88
Node 14 4.14+ 83
Node 13 4.13+, <5.0 79
Node 12 4.12+ 72
Node 11 4.10+, <5.0 67
Node 10 4.9+, <6.0 64
Node 8 4.5.3+, <5.0 57
Node <8 <5.0 <57

2. 安装对应版本的node-sass或者node

安装node-sass

npm i -D node-sass@对应版本

或者切换node版本

nvm use 12.1.0使用nvm切换对应node支持版本

3. 然后是sass-loader对应node-sass版本

sass-loader node-sass
sass-loader 4.1.1 node-sass 4.3.0
sass-loader 7.0.3 node-sass 4.7.2
sass-loader 7.3.1 node-sass 4.7.2
sass-loader 7.3.1 node-sass 4.14.1
sass-loader 10.0.1 node-sass 6.0.1

npm i -D sass-loader@对应版本

4. 接下来是最玄学的部分

如果你卡在中间位置,那怎么办。
假如node-sass版本4.12.1,那么sass-loader应该是7.3.1。
此时应该是能install成功的了,接下来就运行
如果运行报错,上下加减版本号,随机组合一下。