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通讯…

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

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

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

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

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

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

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 …

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;多…

innovus如何分步长func和dft时钟

在Innovus工具中&#xff0c;分步处理功能时钟&#xff08;func clock&#xff09;和DFT时钟&#xff08;如扫描测试时钟&#xff09;需要结合设计模式&#xff08;Function Mode和DFT Mode&#xff09;进行约束定义、时钟树综合&#xff08;CTS&#xff09;和时序分析。跟随分…

java高级知识之集合

前言 集合是java开发中的重点内容&#xff0c;需要掌握的东西很多&#xff0c;面试中可问的东西很多&#xff0c;无论是深度还是广度。集合框架中Collection对应的实现类如下所示&#xff0c;这些都是要完全掌握&#xff0c;一个可以分为三大类List集合、Set‘集合以及Map集合…

51c自动驾驶~合集49

我自己的原文哦~ https://blog.51cto.com/whaosoft/13164876 #Ultra-AV 轨迹预测新基准&#xff01;清华开源&#xff1a;统一自动驾驶纵向轨迹数据集 自动驾驶车辆在交通运输领域展现出巨大潜力&#xff0c;而理解其纵向驾驶行为是实现安全高效自动驾驶的关键。现有的开…

Unity-Mirror网络框架-从入门到精通之MultipleMatches示例

文章目录 前言MultipleMatchesLobbyViewRoomViewMatchGUIPlayerGUI总结前言 在现代游戏开发中,网络功能日益成为提升游戏体验的关键组成部分。本系列文章将为读者提供对Mirror网络框架的深入了解,涵盖从基础到高级的多个主题。Mirror是一个用于Unity的开源网络框架,专为多人…

VMware Workstation创建虚拟机

目录 创建新的虚拟机 虚拟机快照功能 虚拟机添加空间 其他注意事项 创建新的虚拟机 打开VMware Workstation&#xff1a;启动软件后&#xff0c;点击“创建新的虚拟机”。 选择安装方式&#xff1a; 典型安装&#xff1a;适合大多数用户&#xff0c;会自动完成大部分配置…

DeepSeek AI R1推理大模型API集成文档

DeepSeek AI R1推理大模型API集成文档 引言 随着自然语言处理技术的飞速发展&#xff0c;大语言模型在各行各业的应用日益广泛。DeepSeek R1作为一款高性能、开源的大语言模型&#xff0c;凭借其强大的文本生成能力、高效的推理性能和灵活的接口设计&#xff0c;吸引了大量开发…

活泼瘤胃球菌(Ruminococcus gnavus)——多种疾病风险的潜在标志物

​ 前几日&#xff0c;南方医科大学深圳医院院长周宏伟教授团队在国际顶尖医学期刊《Nature Medicine》上发表了一项重要研究。首次揭示一种名为活泼瘤胃球菌(Ruminococcus gnavus)的细菌产生的物质——苯乙胺&#xff0c;在肝性脑病发生中的关键作用。 ​ 同时谷禾的人群检测数…

8.flask+websocket

http是短连接&#xff0c;无状态的。 websocket是长连接&#xff0c;有状态的。 flask中使用websocket from flask import Flask, request import asyncio import json import time import websockets from threading import Thread from urllib.parse import urlparse, pars…

qiime2:安装与使用

试一下docker安装 docker pull quay.io/qiime2/amplicon:2024.10 docker images docker run -v {挂载的目录}:/data quay.io/qiime2/amplicon:2024.10 qiime -h使用 import.txt docker run -v ~/diarrhoea/MJ/qingzhu:/data quay.io/qiime2/amplicon:2024.10 qiime tools imp…