Windows 安装 DeepSeek 教程和open webui 图形化部署(非docker)

Windows 安装 Ollama :

步骤 1:下载并安装 Ollama

官网:奥拉马 点击下载  选择windows版本。

 双击安装包

点击【Install】(注意:安装包是直接安装在C盘的,并不支持更改路径,因此C盘的空间必须要至少大于5GB的空余空间)

 等待安装完成

步骤2:部署模型

版本:1.5b,适用于一般文字编辑使用(C盘至少需要1.1GB空余空间)
ollama run deepseek-r1:1.5b

版本:7b,DeepSeek的第一代推理模型,性能与OpenAl-01相当,包括从基于Llama和Qwen的DeepSeek-R1中提取的六个密集模型(C盘至少需要4.7GB空余空间)
ollama run deepseek-r1:7b

版本:8b,(C盘至少需要4.9GB空余空间)
ollama run deepseek-r1:8b

版本:14b,(C盘至少需要9GB空余空间)
ollama run deepseek-r1:14b

版本:32b,(C盘至少需要20GB空余空间)
ollama run deepseek-r1:32b

版本:70b,(C盘至少需要43GB空余空间)
ollama run deepseek-r1:70b

版本:671b,(C盘至少需要404GB空余空间)
ollama run deepseek-r1:671b 

win +R 键 打开对话框 输入cmd 打开终端,根据自己的电脑配置,选择对应的deepseek-r模型。

 部署完成

如何重新进入对话框,按win +R 键 打开对话框 输入cmd 打开终端,

输入:ollama list 查看安装的模型  然后 ollama run 模型

open webui 图形化部署

步骤1:环境配置

下载open webui 官网:🏡 首页 |打开 WebUI
python 下载官网:适用于 Windows 的 Python 版本 |Python.org
Node.js下载官网:下载 | Node.js 中文网
可以百度搜索python pip Node.js的下载教程,这里就不详细解释了。

步骤2:安装部署open-webui 安装 (推荐)uv

#下载安装脚本install.ps1
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
#运行 Open WebUI
$env:DATA_DIR="C:\open-webui\data"; uvx --python 3.11 open-webui@latest serve
#安装 Open WebUI
pip install open-webui
#启动 Open WebUI
open-webui serve
#更新 Open WebUI
pip install --upgrade open-webui

列出 ollama 模型
ollama list
查看 Python 版本。
python --version
查看 pip 版本
pip --version
查看 open-webui 包的详细信息。
pip show open-webui

补充:如果上述方法不行 有报错可以尝试下面的方法。

首先保证安装了python pip Node.js

步骤1 创建  uv-installer.ps1 脚本内容如下:

# Licensed under the MIT license
# <LICENSE-MIT or https://opensource.org/licenses/MIT>, at your
# option. This file may not be copied, modified, or distributed
# except according to those terms.<#
.SYNOPSISThe installer for uv 0.5.29.DESCRIPTIONThis script detects what platform you're on and fetches an appropriate archive from
https://github.com/astral-sh/uv/releases/download/0.5.29
then unpacks the binaries and installs them to the first of the following locations$env:XDG_BIN_HOME$env:XDG_DATA_HOME/../bin$HOME/.local/binIt will then add that dir to PATH by editing your Environment.Path registry key.PARAMETER ArtifactDownloadUrl
The URL of the directory where artifacts can be fetched from.PARAMETER NoModifyPath
Don't add the install directory to PATH.PARAMETER Help
Print help#>param ([Parameter(HelpMessage = "The URL of the directory where artifacts can be fetched from")][string]$ArtifactDownloadUrl = 'https://github.com/astral-sh/uv/releases/download/0.5.29',[Parameter(HelpMessage = "Don't add the install directory to PATH")][switch]$NoModifyPath,[Parameter(HelpMessage = "Print Help")][switch]$Help
)$app_name = 'uv'
$app_version = '0.5.29'
if ($env:UV_INSTALLER_GHE_BASE_URL) {$installer_base_url = $env:UV_INSTALLER_GHE_BASE_URL
} elseif ($env:UV_INSTALLER_GITHUB_BASE_URL) {$installer_base_url = $env:UV_INSTALLER_GITHUB_BASE_URL
} else {$installer_base_url = "https://github.com"
}
if ($env:INSTALLER_DOWNLOAD_URL) {$ArtifactDownloadUrl = $env:INSTALLER_DOWNLOAD_URL
} else {$ArtifactDownloadUrl = "$installer_base_url/astral-sh/uv/releases/download/0.5.29"
}$receipt = @"
{"binaries":["CARGO_DIST_BINS"],"binary_aliases":{},"cdylibs":["CARGO_DIST_DYLIBS"],"cstaticlibs":["CARGO_DIST_STATICLIBS"],"install_layout":"unspecified","install_prefix":"AXO_INSTALL_PREFIX","modify_path":true,"provider":{"source":"cargo-dist","version":"0.28.0"},"source":{"app_name":"uv","name":"uv","owner":"astral-sh","release_type":"github"},"version":"0.5.29"}
"@
if ($env:XDG_CONFIG_HOME) {$receipt_home = "${env:XDG_CONFIG_HOME}\uv"
} else {$receipt_home = "${env:LOCALAPPDATA}\uv"
}if ($env:UV_DISABLE_UPDATE) {$install_updater = $false
} else {$install_updater = $true
}if ($NoModifyPath) {Write-Information "-NoModifyPath has been deprecated; please set UV_NO_MODIFY_PATH=1 in the environment"
}if ($env:UV_NO_MODIFY_PATH) {$NoModifyPath = $true
}$unmanaged_install = $env:UV_UNMANAGED_INSTALLif ($unmanaged_install) {$NoModifyPath = $true$install_updater = $false
}function Install-Binary($install_args) {if ($Help) {Get-Help $PSCommandPath -DetailedExit}Initialize-Environment# Platform info injected by dist$platforms = @{"aarch64-pc-windows-gnu" = @{"artifact_name" = "uv-aarch64-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}"aarch64-pc-windows-msvc" = @{"artifact_name" = "uv-aarch64-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}"i686-pc-windows-gnu" = @{"artifact_name" = "uv-i686-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}"i686-pc-windows-msvc" = @{"artifact_name" = "uv-i686-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}"x86_64-pc-windows-gnu" = @{"artifact_name" = "uv-x86_64-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}"x86_64-pc-windows-msvc" = @{"artifact_name" = "uv-x86_64-pc-windows-msvc.zip""bins" = @("uv.exe", "uvx.exe")"libs" = @()"staticlibs" = @()"zip_ext" = ".zip""aliases" = @{}"aliases_json" = '{}'}}$fetched = Download "$ArtifactDownloadUrl" $platforms# FIXME: add a flag that lets the user not do this steptry {Invoke-Installer -artifacts $fetched -platforms $platforms "$install_args"} catch {throw @"
We encountered an error trying to perform the installation;
please review the error messages below.$_
"@}
}function Get-TargetTriple($platforms) {$double = Get-Archif ($platforms.Contains("$double-msvc")) {return "$double-msvc"} else {return "$double-gnu"}
}function Get-Arch() {try {# NOTE: this might return X64 on ARM64 Windows, which is OK since emulation is available.# It works correctly starting in PowerShell Core 7.3 and Windows PowerShell in Win 11 22H2.# Ideally this would just be#   [System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture# but that gets a type from the wrong assembly on Windows PowerShell (i.e. not Core)$a = [System.Reflection.Assembly]::LoadWithPartialName("System.Runtime.InteropServices.RuntimeInformation")$t = $a.GetType("System.Runtime.InteropServices.RuntimeInformation")$p = $t.GetProperty("OSArchitecture")# Possible OSArchitecture Values: https://learn.microsoft.com/dotnet/api/system.runtime.interopservices.architecture# Rust supported platforms: https://doc.rust-lang.org/stable/rustc/platform-support.htmlswitch ($p.GetValue($null).ToString()){"X86" { return "i686-pc-windows" }"X64" { return "x86_64-pc-windows" }"Arm" { return "thumbv7a-pc-windows" }"Arm64" { return "aarch64-pc-windows" }}} catch {# The above was added in .NET 4.7.1, so Windows PowerShell in versions of Windows# prior to Windows 10 v1709 may not have this API.Write-Verbose "Get-TargetTriple: Exception when trying to determine OS architecture."Write-Verbose $_}# This is available in .NET 4.0. We already checked for PS 5, which requires .NET 4.5.Write-Verbose("Get-TargetTriple: falling back to Is64BitOperatingSystem.")if ([System.Environment]::Is64BitOperatingSystem) {return "x86_64-pc-windows"} else {return "i686-pc-windows"}
}function Download($download_url, $platforms) {$arch = Get-TargetTriple $platformsif (-not $platforms.ContainsKey($arch)) {$platforms_json = ConvertTo-Json $platformsthrow "ERROR: could not find binaries for this platform. Last platform tried: $arch platform info: $platforms_json"}# Lookup what we expect this platform to look like$info = $platforms[$arch]$zip_ext = $info["zip_ext"]$bin_names = $info["bins"]$lib_names = $info["libs"]$staticlib_names = $info["staticlibs"]$artifact_name = $info["artifact_name"]# Make a new temp dir to unpack things to$tmp = New-Temp-Dir$dir_path = "$tmp\$app_name$zip_ext"# Download and unpack!$url = "$download_url/$artifact_name"Write-Information "Downloading $app_name $app_version ($arch)"Write-Verbose "  from $url"Write-Verbose "  to $dir_path"$wc = New-Object Net.Webclient$wc.downloadFile($url, $dir_path)Write-Verbose "Unpacking to $tmp"# Select the tool to unpack the files with.## As of windows 10(?), powershell comes with tar preinstalled, but in practice# it only seems to support .tar.gz, and not xz/zstd. Still, we should try to# forward all tars to it in case the user has a machine that can handle it!switch -Wildcard ($zip_ext) {".zip" {Expand-Archive -Path $dir_path -DestinationPath "$tmp";Break}".tar.*" {tar xf $dir_path --strip-components 1 -C "$tmp";Break}Default {throw "ERROR: unknown archive format $zip_ext"}}# Let the next step know what to copy$bin_paths = @()foreach ($bin_name in $bin_names) {Write-Verbose "  Unpacked $bin_name"$bin_paths += "$tmp\$bin_name"}$lib_paths = @()foreach ($lib_name in $lib_names) {Write-Verbose "  Unpacked $lib_name"$lib_paths += "$tmp\$lib_name"}$staticlib_paths = @()foreach ($lib_name in $staticlib_names) {Write-Verbose "  Unpacked $lib_name"$staticlib_paths += "$tmp\$lib_name"}if (($null -ne $info["updater"]) -and $install_updater) {$updater_id = $info["updater"]["artifact_name"]$updater_url = "$download_url/$updater_id"$out_name = "$tmp\uv-update.exe"$wc.downloadFile($updater_url, $out_name)$bin_paths += $out_name}return @{"bin_paths" = $bin_paths"lib_paths" = $lib_paths"staticlib_paths" = $staticlib_paths}
}function Invoke-Installer($artifacts, $platforms) {# Replaces the placeholder binary entry with the actual list of binaries$arch = Get-TargetTriple $platformsif (-not $platforms.ContainsKey($arch)) {$platforms_json = ConvertTo-Json $platformsthrow "ERROR: could not find binaries for this platform. Last platform tried: $arch platform info: $platforms_json"}$info = $platforms[$arch]# Forces the install to occur at this path, not the default$force_install_dir = $null$install_layout = "unspecified"# Check the newer app-specific variable before falling back# to the older generic oneif (($env:UV_INSTALL_DIR)) {$force_install_dir = $env:UV_INSTALL_DIR$install_layout = "flat"} elseif (($env:CARGO_DIST_FORCE_INSTALL_DIR)) {$force_install_dir = $env:CARGO_DIST_FORCE_INSTALL_DIR$install_layout = "flat"} elseif ($unmanaged_install) {$force_install_dir = $unmanaged_install$install_layout = "flat"}# Check if the install layout should be changed from `flat` to `cargo-home`# for backwards compatible updates of applications that switched layouts.if (($force_install_dir) -and ($install_layout -eq "flat")) {# If the install directory is targeting the Cargo home directory, then# we assume this application was previously installed that layout# Note the installer passes the path with `\\` separators, but here they are# `\` so we normalize for comparison. We don't use `Resolve-Path` because they# may not exist.$cargo_home = if ($env:CARGO_HOME) { $env:CARGO_HOME } else {Join-Path $(if ($HOME) { $HOME } else { "." }) ".cargo"}if ($force_install_dir.Replace('\\', '\') -eq $cargo_home) {$install_layout = "cargo-home"}}# The actual path we're going to install to$dest_dir = $null$dest_dir_lib = $null# The install prefix we write to the receipt.# For organized install methods like CargoHome, which have# subdirectories, this is the root without `/bin`. For other# methods, this is the same as `_install_dir`.$receipt_dest_dir = $null# Before actually consulting the configured install strategy, see# if we're overriding it.if (($force_install_dir)) {switch ($install_layout) {"hierarchical" {$dest_dir = Join-Path $force_install_dir "bin"$dest_dir_lib = Join-Path $force_install_dir "lib"}"cargo-home" {$dest_dir = Join-Path $force_install_dir "bin"$dest_dir_lib = $dest_dir}"flat" {$dest_dir = $force_install_dir$dest_dir_lib = $dest_dir}Default {throw "Error: unrecognized installation layout: $install_layout"}}$receipt_dest_dir = $force_install_dir}if (-Not $dest_dir) {# Install to $env:XDG_BIN_HOME$dest_dir = if (($base_dir = $env:XDG_BIN_HOME)) {Join-Path $base_dir ""}$dest_dir_lib = $dest_dir$receipt_dest_dir = $dest_dir$install_layout = "flat"}if (-Not $dest_dir) {# Install to $env:XDG_DATA_HOME/../bin$dest_dir = if (($base_dir = $env:XDG_DATA_HOME)) {Join-Path $base_dir "../bin"}$dest_dir_lib = $dest_dir$receipt_dest_dir = $dest_dir$install_layout = "flat"}if (-Not $dest_dir) {# Install to $HOME/.local/bin$dest_dir = if (($base_dir = $HOME)) {Join-Path $base_dir ".local/bin"}$dest_dir_lib = $dest_dir$receipt_dest_dir = $dest_dir$install_layout = "flat"}# Looks like all of the above assignments failedif (-Not $dest_dir) {throw "ERROR: could not find a valid path to install to; please check the installation instructions"}# The replace call here ensures proper escaping is inlined into the receipt$receipt = $receipt.Replace('AXO_INSTALL_PREFIX', $receipt_dest_dir.replace("\", "\\"))$receipt = $receipt.Replace('"install_layout":"unspecified"', -join('"install_layout":"', $install_layout, '"'))$dest_dir = New-Item -Force -ItemType Directory -Path $dest_dir$dest_dir_lib = New-Item -Force -ItemType Directory -Path $dest_dir_libWrite-Information "Installing to $dest_dir"# Just copy the binaries from the temp location to the install dirforeach ($bin_path in $artifacts["bin_paths"]) {$installed_file = Split-Path -Path "$bin_path" -LeafCopy-Item "$bin_path" -Destination "$dest_dir" -ErrorAction StopRemove-Item "$bin_path" -Recurse -Force -ErrorAction StopWrite-Information "  $installed_file"if (($dests = $info["aliases"][$installed_file])) {$source = Join-Path "$dest_dir" "$installed_file"foreach ($dest_name in $dests) {$dest = Join-Path $dest_dir $dest_name$null = New-Item -ItemType HardLink -Target "$source" -Path "$dest" -Force -ErrorAction Stop}}}foreach ($lib_path in $artifacts["lib_paths"]) {$installed_file = Split-Path -Path "$lib_path" -LeafCopy-Item "$lib_path" -Destination "$dest_dir_lib" -ErrorAction StopRemove-Item "$lib_path" -Recurse -Force -ErrorAction StopWrite-Information "  $installed_file"}foreach ($lib_path in $artifacts["staticlib_paths"]) {$installed_file = Split-Path -Path "$lib_path" -LeafCopy-Item "$lib_path" -Destination "$dest_dir_lib" -ErrorAction StopRemove-Item "$lib_path" -Recurse -Force -ErrorAction StopWrite-Information "  $installed_file"}$formatted_bins = ($info["bins"] | ForEach-Object { '"' + $_ + '"' }) -join ","$receipt = $receipt.Replace('"CARGO_DIST_BINS"', $formatted_bins)$formatted_libs = ($info["libs"] | ForEach-Object { '"' + $_ + '"' }) -join ","$receipt = $receipt.Replace('"CARGO_DIST_DYLIBS"', $formatted_libs)$formatted_staticlibs = ($info["staticlibs"] | ForEach-Object { '"' + $_ + '"' }) -join ","$receipt = $receipt.Replace('"CARGO_DIST_STATICLIBS"', $formatted_staticlibs)# Also replace the aliases with the arch-specific one$receipt = $receipt.Replace('"binary_aliases":{}', -join('"binary_aliases":',  $info['aliases_json']))if ($NoModifyPath) {$receipt = $receipt.Replace('"modify_path":true', '"modify_path":false')}# Write the install receiptif ($install_updater) {$null = New-Item -Path $receipt_home -ItemType "directory" -ErrorAction SilentlyContinue# Trying to get Powershell 5.1 (not 6+, which is fake and lies) to write utf8 is a crime# because "Out-File -Encoding utf8" actually still means utf8BOM, so we need to pull out# .NET's APIs which actually do what you tell them (also apparently utf8NoBOM is the# default in newer .NETs but I'd rather not rely on that at this point).$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False[IO.File]::WriteAllLines("$receipt_home/uv-receipt.json", "$receipt", $Utf8NoBomEncoding)}# Respect the environment, but CLI takes precedenceif ($null -eq $NoModifyPath) {$NoModifyPath = $env:INSTALLER_NO_MODIFY_PATH}Write-Information "everything's installed!"if (-not $NoModifyPath) {Add-Ci-Path $dest_dirif (Add-Path $dest_dir) {Write-Information ""Write-Information "To add $dest_dir to your PATH, either restart your shell or run:"Write-Information ""Write-Information "    set Path=$dest_dir;%Path%   (cmd)"Write-Information "    `$env:Path = `"$dest_dir;`$env:Path`"   (powershell)"}}
}# Attempt to do CI-specific rituals to get the install-dir on PATH faster
function Add-Ci-Path($OrigPathToAdd) {# If GITHUB_PATH is present, then write install_dir to the file it refs.# After each GitHub Action, the contents will be added to PATH.# So if you put a curl | sh for this script in its own "run" step,# the next step will have this dir on PATH.## Note that GITHUB_PATH will not resolve any variables, so we in fact# want to write the install dir and not an expression that evals to itif (($gh_path = $env:GITHUB_PATH)) {Write-Output "$OrigPathToAdd" | Out-File -FilePath "$gh_path" -Encoding utf8 -Append}
}# Try to permanently add the given path to the user-level
# PATH via the registry
#
# Returns true if the registry was modified, otherwise returns false
# (indicating it was already on PATH)
#
# This is a lightly modified version of this solution:
# https://stackoverflow.com/questions/69236623/adding-path-permanently-to-windows-using-powershell-doesnt-appear-to-work/69239861#69239861
function Add-Path($LiteralPath) {Write-Verbose "Adding $LiteralPath to your user-level PATH"$RegistryPath = 'registry::HKEY_CURRENT_USER\Environment'# Note the use of the .GetValue() method to ensure that the *unexpanded* value is returned.# If 'Path' is not an existing item in the registry, '' is returned.$CurrentDirectories = (Get-Item -LiteralPath $RegistryPath).GetValue('Path', '', 'DoNotExpandEnvironmentNames') -split ';' -ne ''if ($LiteralPath -in $CurrentDirectories) {Write-Verbose "Install directory $LiteralPath already on PATH, all done!"return $false}Write-Verbose "Actually mutating 'Path' Property"# Add the new path to the front of the PATH.# The ',' turns $LiteralPath into an array, which the array of# $CurrentDirectories is then added to.$NewPath = (,$LiteralPath + $CurrentDirectories) -join ';'# Update the registry. Will create the property if it did not already exist.# Note the use of ExpandString to create a registry property with a REG_EXPAND_SZ data type.Set-ItemProperty -Type ExpandString -LiteralPath $RegistryPath Path $NewPath# Broadcast WM_SETTINGCHANGE to get the Windows shell to reload the# updated environment, via a dummy [Environment]::SetEnvironmentVariable() operation.$DummyName = 'cargo-dist-' + [guid]::NewGuid().ToString()[Environment]::SetEnvironmentVariable($DummyName, 'cargo-dist-dummy', 'User')[Environment]::SetEnvironmentVariable($DummyName, [NullString]::value, 'User')Write-Verbose "Successfully added $LiteralPath to your user-level PATH"return $true
}function Initialize-Environment() {If (($PSVersionTable.PSVersion.Major) -lt 5) {throw @"
Error: PowerShell 5 or later is required to install $app_name.
Upgrade PowerShell:https://docs.microsoft.com/en-us/powershell/scripting/setup/installing-windows-powershell"@}# show notification to change execution policy:$allowedExecutionPolicy = @('Unrestricted', 'RemoteSigned', 'Bypass')If ((Get-ExecutionPolicy).ToString() -notin $allowedExecutionPolicy) {throw @"
Error: PowerShell requires an execution policy in [$($allowedExecutionPolicy -join ", ")] to run $app_name. For example, to set the execution policy to 'RemoteSigned' please run:Set-ExecutionPolicy RemoteSigned -scope CurrentUser"@}# GitHub requires TLS 1.2If ([System.Enum]::GetNames([System.Net.SecurityProtocolType]) -notcontains 'Tls12') {throw @"
Error: Installing $app_name requires at least .NET Framework 4.5
Please download and install it first:https://www.microsoft.com/net/download"@}
}function New-Temp-Dir() {[CmdletBinding(SupportsShouldProcess)]param()$parent = [System.IO.Path]::GetTempPath()[string] $name = [System.Guid]::NewGuid()New-Item -ItemType Directory -Path (Join-Path $parent $name)
}# PSScriptAnalyzer doesn't like how we use our params as globals, this calms it
$Null = $ArtifactDownloadUrl, $NoModifyPath, $Help
# Make Write-Information statements be visible
$InformationPreference = "Continue"# The default interactive handler
try {Install-Binary "$Args"
} catch {Write-Information $_exit 1
}

 步骤2:执行上面的脚本的命令:

powershell -ExecutionPolicy ByPass -File D:\桌面\uv-installer.ps1

注意: D:\桌面\uv-installer.ps1  是脚本文件路径

步骤3:把uv 加入系统环境变量中

#把uv添加到系统环境变量中
set Path=C:\Users\Administrator\.local\bin;%Path%
#查看安装版本
uv --version

步骤4:安装 Open WebUI

#安装open-webui
pip install open-webui
#查看 open-webui 包的详细信息。
pip show open-webui

步骤5:启动Open WebUI

open-webui serve --port 3000

 步骤6:登录浏览器 访问http://localhost:3000

注册账户 邮箱和密码。

开始使用

 安装完成

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/69736.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

每日学习 设计模式 五种不同的单例模式

狮子大佬原文 https://blog.csdn.net/weixin_40461281/article/details/135050977 第一种 饿汉式 为什么叫饿汉,指的是"饿" 也就是说对象实例在程序启动时就已经被创建好,不管你是否需要,它都会在类加载时立即实例化,也就是说 实例化是在类加载时候完成的,早早的吃…

OpenCV 相机标定流程指南

OpenCV 相机标定流程指南 前置准备标定流程结果输出与验证建议源代码 OpenCV 相机标定流程指南 https://docs.opencv.org/4.x/dc/dbb/tutorial_py_calibration.html https://learnopencv.com/camera-calibration-using-opencv/ 前置准备 制作标定板&#xff1a;生成高精度棋…

没有服务器和显卡电脑如何本地化使用deepseek|如何通过API使用满血版deepseek

目录 一、前言二、使用siliconflow硅基流动 API密钥1、注册硅基流动2、创建API密钥3、下载AI客户端4、使用API密钥5、效果演示 三、使用deepseek官方API密钥1、创建API密钥2、使用API密钥3、效果演示 四、总结 一、前言 上篇文章我介绍了如何通过云服务器或者显卡电脑来本地化…

python+unity落地方案实现AI 换脸融合

先上效果再说技术结论&#xff0c;使用的是自行搭建的AI人脸融合库&#xff0c;可以离线不受限制无限次生成&#xff0c;有需要的可以后台私信python ai换脸融合。 TODO 未来的方向&#xff1a;3D人脸融合和AI数据训练 这个技术使用的是openvcinsighface&#xff0c;openvc…

windows + visual studio 2019 使用cmake 编译构建静、动态库并调用详解

环境 windows visual studio 2019 visual studio 2019创建cmake工程 1. 静态库.lib 1.1 静态库编译生成 以下是我创建的cmake工程文件结构&#xff0c;只关注高亮文件夹部分 libout 存放编译生成的.lib文件libsrc 存放编译用的源代码和头文件CMakeLists.txt 此次编译CMak…

【前端】几种常见的跨域解决方案代理的概念

几种常见的跨域解决方案&代理的概念 一、常见的跨域解决方案1. 服务端配置CORS&#xff08;Cross-Origin Resource Sharing&#xff09;&#xff1a;2. Nginx代理3. Vue CLI配置代理&#xff1a;4 .uni-app在manifest.json中配置代理来解决&#xff1a;5. 使用WebSocket通讯…

C++--iomanip库

目录 1. 设置字段宽度&#xff1a;std::setw() 2. 设置浮点数精度&#xff1a;std::setprecision() 3. 设置填充字符&#xff1a;std::setfill() 4. 控制对齐方式&#xff1a;std::left 和 std::right&#xff0c;std::internal 5. 控制进制输出&#xff1a;std::hex、std…

java项目当中使用redis

分类数据一般情况下不会做过多的修改&#xff0c;因此可以将分类数据进行缓存&#xff0c;以提高页面的加载速度。 1 使用缓存 先将首页接口获取一级分类数据缓存 步骤&#xff1a; 1、在service-product微服务中集成Spring Data Redis&#xff0c;如下所示&#xff1a; 在…

Git 分布式版本控制工具使用教程

1.关于Git 1.1 什么是Git Git是一款免费、开源的分布式版本控制工具&#xff0c;由Linux创始人Linus Torvalds于2005年开发。它被设计用来处理从很小到非常大的项目&#xff0c;速度和效率都非常高。Git允许多个开发者几乎同时处理同一个项目而不会互相干扰&#xff0c;并且在…

【Pycharm+Git+Gitlab】安装部署(粗糙版)

1、安装Git 2、安装Pycharm&#xff08;这里选择的是社区版&#xff09; 3、桌面右键打开Git Bash 1&#xff09;设置全局用户名&#xff08;准备连接的Gitlab仓库的访问用户名&#xff09; git config ---global user.name "username"2&#xff09;设置全局邮箱&…

基于java手机销售网站设计和实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

Android Camera API 介绍

一 StreamConfigurationMap 1. StreamConfigurationMap 的作用 StreamConfigurationMap 是 Android Camera2 API 中的一个核心类&#xff0c;用于描述相机设备支持的输出流配置&#xff0c;包含以下信息&#xff1a; 支持的格式与分辨率&#xff1a;例如 YUV_420_888、JPEG、…

GitHub Pages + Jekyll 博客搭建指南(静态网站搭建)

目录 &#x1f680; 静态网站及其生成工具指南&#x1f30d; 什么是静态网站&#xff1f;&#x1f4cc; 静态网站的优势⚖️ 静态网站 VS 动态网站 &#x1f680; 常见的静态网站生成器对比&#x1f6e0;️ 使用 GitHub Pages Jekyll 搭建个人博客&#x1f4cc; 1. 创建 GitHu…

wow-agent

一、什么是wow-agent&#xff1f; wow-agent致力于在代码行数和依赖库数量之间取得均衡的最小值&#xff0c;用最划算的方式帮助您在本地搭建AI Agent&#xff0c;嵌入到您的生产工作环节中 Agent 核心组件&#xff1a;模型、工具、编排层 模型-- 用于理解输入、进行推理和决…

React进行路由跳转的方法汇总

在 React 中进行路由跳转有多种方法&#xff0c;具体取决于你使用的路由库和版本。以下是常见的路由跳转方法汇总&#xff0c;主要基于 react-router-dom 库。 1. 使用 useNavigate 钩子&#xff08;适用于 react-router-dom v6&#xff09; useNavigate 是 react-router-dom…

java8、9新特性

JAVA8 Lambda 表达式 (parameters) -> expression 或 (parameters) ->{ statements; } 提供了一种更为简洁的语法&#xff0c;尤其适用于函数式接口。相比于传统的匿名内部类&#xff0c;Lambda 表达式使得代码更为紧凑&#xff0c;减少了样板代码的编写。 它允许将函…

【Elasticsearch】cumulative_cardinality

1.定义与用途 cumulative_cardinality是一种父级管道聚合&#xff08;Parent Pipeline Aggregation&#xff09;&#xff0c;用于在父级直方图&#xff08;histogram&#xff09;或日期直方图&#xff08;date_histogram&#xff09;聚合中计算累计基数。它主要用于统计在某个…

1.【线性代数】——方程组的几何解释

一 方程组的几何解释 概述举例举例一1. matrix2.row picture3.column picture 概述 三种表示方法 matrixrow picturecolumn picture 举例 举例一 { 2 x − y 0 − x 2 y 3 \begin{cases} 2x - y 0 \\ -x 2y 3 \end{cases} {2x−y0−x2y3​ 1. matrix [ 2 − 1 − 1 …

DeepSeek小白初识指南

1.什么是DeepSeek&#xff1f; DeepSeek是一个基于大语言模型&#xff08;LLM&#xff09;的智能助手&#xff0c;能够处理自然语言理解、生成、对话等任务。它广泛应用于聊天机器人、内容生成、数据分析等领域。 2.DeepSeek和OpenAI等大模型差异&#xff1f; 虽然DeepSeek和Op…

ZZNUOJ(C/C++)基础练习1091——1100(详解版)⭐

目录 1091 : 童年生活二三事&#xff08;多实例测试&#xff09; C C 1092 : 素数表(函数专题&#xff09; C C 1093 : 验证哥德巴赫猜想&#xff08;函数专题&#xff09; C C 1094 : 统计元音&#xff08;函数专题&#xff09; C C 1095 : 时间间隔&#xff08;多…