【笔记】Windows 成功部署 Suna 开源的通用人工智能代理项目部署日志
#工作记录

kortix-ai/suna: Suna - 开源通用 AI 代理
项目概述
Suna 是一个完全开源的 AI 助手,通过自然对话帮助用户轻松完成研究、数据分析等日常任务。它结合了强大的功能和直观的界面,能够理解用户需求并提供结果。其强大的工具包包括浏览器自动化、文件管理、网页抓取、命令行执行、网站部署以及与各种 API 和服务的集成,这些功能协同工作,使 Suna 能够通过简单的对话解决复杂问题并自动化工作流程。
项目架构
Suna 主要由四个组件组成:
- 后端 API:基于 Python/FastAPI 构建的服务,负责处理 REST 端点、线程管理以及与 Anthropic 等大语言模型(LLM)的集成(通过 LiteLLM)。
- 前端:使用 Next.js/React 开发的应用程序,提供响应式用户界面,包括聊天界面、仪表盘等。
- Agent Docker:为每个代理提供隔离的执行环境,支持浏览器自动化、代码解释器、文件系统访问、工具集成和安全特性。
- Supabase 数据库:负责数据持久化,包括认证、用户管理、对话历史记录、文件存储、代理状态、分析和实时订阅等功能。
使用案例
仓库文档中列举了多个使用案例,展示了 Suna 在不同场景下的应用,例如:
- 竞争对手分析:分析特定行业的市场情况,生成 PDF 报告。
- 风险投资基金列表:获取美国重要风险投资基金的信息。
- 候选人搜索:在 LinkedIn 上查找符合特定条件的候选人。
- 公司旅行规划:生成公司旅行的路线计划和活动安排。
- Excel 数据处理:设置 Excel 电子表格并填充相关信息。
- 活动演讲者挖掘:寻找符合条件的 AI 伦理演讲者并输出联系方式和演讲摘要。
- 科学论文总结和交叉引用:研究和比较科学论文,生成相关报告。
- 潜在客户研究和初步联系:研究潜在客户,生成个性化的初步联系邮件。
- SEO 分析:基于网站生成 SEO 报告分析。
- 个人旅行规划:生成个人旅行的详细行程计划。
- 近期融资的初创公司:从多个平台筛选特定领域的初创公司并生成报告。
- 论坛讨论抓取:在论坛上查找特定主题的信息并生成列表。
Microsoft Windows [Version 10.0.27868.1000]
(c) Microsoft Corporation. All rights reserved.(.venv) F:\PythonProjects\suna>python setup.py '--admin'
███████╗██╗ ██╗███╗ ██╗ █████╗
██╔════╝██║ ██║████╗ ██║██╔══██╗
███████╗██║ ██║██╔██╗ ██║███████║
╚════██║██║ ██║██║╚██╗██║██╔══██║
███████║╚██████╔╝██║ ╚████║██║ ██║
╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝
Setup Wizard
This wizard will guide you through setting up Suna, an open-source generalist AI agent.
Step 1/8: Checking requirements
==================================================✅ git is installed
✅ docker is installed
✅ python3 is installed
✅ poetry is installed
✅ pip3 is installed
✅ node is installed
✅ npm is installed
✅ Docker is running
✅ Suna repository detected
完整日志
经过十余次部署尝试,终于成功将项目运行起来,这一路可谓荆棘密布。整个过程需要配置众多外部软件及 API 密钥,从环境搭建到依赖安装,从密钥获取到服务链接,每一个环节都可能暗藏 “陷阱”,需要反复排查与调试。尽管在部署过程中仍遗留了一些待解决的细节问题,但项目已实现基本运行。
现将完整部署日志记录如下,既便于后期复盘总结,也可供大家参考,提前规避常见报错。后续我将继续深入调试,并整理成完整教程分享给大家。
[日志中的API key均已失效(未充值),仅用于日志记录展示,失效的API key会导致部署受阻]
Microsoft Windows [Version 10.0.27868.1000]
(c) Microsoft Corporation. All rights reserved.(.venv) F:\PythonProjects\suna>python setup.py '--admin'███████╗██╗ ██╗███╗ ██╗ █████╗ ██╔════╝██║ ██║████╗ ██║██╔══██╗███████╗██║ ██║██╔██╗ ██║███████║╚════██║██║ ██║██║╚██╗██║██╔══██║███████║╚██████╔╝██║ ╚████║██║ ██║╚══════╝ ╚═════╝ ╚═╝ ╚═══╝╚═╝ ╚═╝Setup WizardThis wizard will guide you through setting up Suna, an open-source generalist AI agent.Step 1/8: Checking requirements
==================================================✅ git is installed
✅ docker is installed
✅ python3 is installed
✅ poetry is installed
✅ pip3 is installed
✅ node is installed
✅ npm is installed
✅ Docker is running
✅ Suna repository detectedStep 2/8: Collecting Supabase information
==================================================ℹ️ You'll need to create a Supabase project before continuing
ℹ️ Visit https://supabase.com/dashboard/projects to create one
ℹ️ After creating your project, visit the project settings -> Data API and you'll need to get the following information:
ℹ️ 1. Supabase Project URL (e.g., https://abcdefg.supabase.co)
ℹ️ 2. Supabase anon key
ℹ️ 3. Supabase service role key
Press Enter to continue once you've created your Supabase project...
Enter your Supabase Project URL (e.g., https://abcdefg.supabase.co): https://gcnijvljsutcxwsdfsgcedjz.supabase.co
Enter your Supabase anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9safasfsaf.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Imdjbmlqdmxqc3V0Y3h3Z2NlZGp6Iiwicm9sZSI6IsdfmFub24iLCJpYXQiOjE3NDg1MjAwNjksImV4cCI6MjA2NDA5NjA2OX0.WkHwZgqXVwVVR6gnjy1BbfPqqTStdx0Tob0iqMQu5TQ
Enter your Supabase service role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpcsdfsafsa3MiOiJzdXBhYmFzZSIsInJlZiI6Imdjbmlqdmxqc3V0Y3h3Z2NlZGp6Iiwicm9sZSI6IsdfnNlcnZpY2Vfcm9sZSIsImlhdCI6MTc0ODUyMDA2OSwiZXhwIjoyMDY0MDk2MDY5fQ.SUGg5LWt41NA_E-fKSt1vBLt4jBFw6sEeMAa1xvYbywStep 3/8: Collecting Daytona information
==================================================ℹ️ You'll need to create a Daytona account before continuing
ℹ️ Visit https://app.daytona.io/ to create one
ℹ️ Then, generate an API key from 'Keys' menu
ℹ️ After that, go to Images (https://app.daytona.io/dashboard/images)
ℹ️ Click '+ Create Image'
ℹ️ Enter 'kortix/suna:0.1.2.8' as the image name
ℹ️ Set '/usr/bin/supervisord -n -c /etc/supervisor/conf.d/supervisord.conf' as the Entrypoint
Press Enter to continue once you've completed these steps...
Enter your Daytona API key: dtn_8856676c89b5575977dc9afe69dbe67sdfsfba1d76361c7e5ff537862c98c3827cd2bStep 4/8: Collecting LLM API keys
==================================================ℹ️ You need at least one LLM provider API key to use Suna
ℹ️ Available LLM providers: OpenAI, Anthropic, OpenRouterSelect LLM providers to configure:
[1] OpenAI
[2] Anthropic
[3] OpenRouter (access to multiple models)
Enter numbers separated by commas (e.g., 1,2,3)Select providers (required, at least one): 1,3
ℹ️
Configuring OPENAI
Enter your OpenAI API key: sk-proj-dUUSgK9ysdfsdfsdfsaf1cFHa-f9ImeDrJkiPbE4Ei0Bs87-YT4idKotRaYkMlU61EuT2RxW1yGlm6-6lcRhMmT3BlbkFJp7ZEISV8HsdhWTxORCEvlwZ7Rrsdfsafv568HKuYpU_9dm0WnCelDytNKPkqWrchoFNhUUh-iCIAGfX-oARecommended OpenAI models:
[1] openai/gpt-4o
[2] openai/gpt-4o-mini
Select default model (1-4) or press Enter for gpt-4o: 1
ℹ️
Configuring OPENROUTER
Enter your OpenRouter API key: sk-or-v1-5405c9fd3c1f99d9122446sdf6ef81f618sdffad90sdfadf192d77ff17cb65a0d312e621286ee6aRecommended OpenRouter models:
[1] openrouter/google/gemini-2.5-pro-preview
[2] openrouter/deepseek/deepseek-chat-v3-0324:free
[3] openrouter/openai/gpt-4o-2024-11-20
Select default model (1-3) or press Enter for gemini-2.5-flash: 2
✅ Using openrouter/deepseek/deepseek-chat-v3-0324:free as the default modelStep 5/8: Collecting search and web scraping API keys
==================================================ℹ️ You'll need to obtain API keys for search and web scraping
ℹ️ Visit https://tavily.com/ to get a Tavily API key
ℹ️ Visit https://firecrawl.dev/ to get a Firecrawl API key
Enter your Tavily API key: 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
Enter your Firecrawl API key: fc-1801bsdfsfedf8e2942d4bdf536032f798e03
Are you self-hosting Firecrawl? (y/n): NStep 6/8: Collecting RapidAPI key
==================================================ℹ️ To enable API services like LinkedIn, and others, you'll need a RapidAPI key
ℹ️ Each service requires individual activation in your RapidAPI account:
ℹ️ 1. Locate the service's `base_url` in its corresponding file (e.g., https://linkedin-data-scraper.p.rapidapi.com in backend/agent/tools/data_providers/LinkedinProvider.py)
ℹ️ 2. Visit that specific API on the RapidAPI marketplace
ℹ️ 3. Subscribe to th`e service (many offer free tiers with limited requests)
ℹ️ 4. Once subscribed, the service will be available to your agent through the API Services tool
ℹ️ A RapidAPI key is optional for API services like LinkedIn
ℹ️ Visit https://rapidapi.com/ to get your API key if needed
ℹ️ You can leave this blank and add it later if desired
Enter your RapidAPI key (optional, press Enter to skip): 936154e36fmshe98d7e77835be33p1c63e0jsnd737f78eca0b
ℹ️ Setting up Supabase database...
✅ Extracted project reference 'gcnijvljsutcxwgcedjz' from your Supabase URL
ℹ️ Changing to backend directory: F:\PythonProjects\suna\backend
ℹ️ Logging into Supabase CLI...
Hello from Supabase! Press Enter to open browser and login automatically.Here is your login link in case browser did not open https://supabase.com/dashboard/cli/login?session_id=99b6b3c2-650b-4554-9c86-971ddf5459f1&token_name=cli_AI\love@AI_1748618285&public_key=0423f5ef16356a29c45508ab16157da5afffbe7ced2f713f1258eeb78313524ae557aab83dsdfafedeb19895a1a6f8bd34b1d9d0d38753e5798c5fff7ffad5d8edf4255Enter your verification code: fd5a5ca0
Token cli_AI\love@AI_17486sdfa18285 created successfully.You are now logged in. Happy coding!
ℹ️ Linking to Supabase project gcnijvljsutcxwgcedjz...
Enter your database password (or leave blank to skip):
Connecting to remote database...
NOTICE (42P06): schema "supabase_migrations" already exists, skipping
NOTICE (42P07): relation "schema_migrations" already exists, skipping
NOTICE (42701): column "statements" of relation "schema_migrations" already exists, skipping
NOTICE (42701): column "name" of relation "schema_migrations" already exists, skipping
NOTICE (42P06): schema "supabase_migrations" already exists, skipping
NOTICE (42P07): relation "seed_files" already exists, skipping
Finished supabase link.
ℹ️ Pushing database migrations...
Connecting to remote database...
Remote database is up to date.
✅ Supabase database setup completed
⚠️ IMPORTANT: You need to manually expose the 'basejump' schema in Supabase
ℹ️ Go to the Supabase web platform -> choose your project -> Project Settings -> Data API
ℹ️ In the 'Exposed Schema' section, add 'basejump' if not already there
Press Enter once you've completed this step...Step 8/8: Starting Suna
==================================================ℹ️ You can start Suna using either Docker Compose or by manually starting the frontend, backend and worker.How would you like to start Suna?
[1] Docker Compose (recommended, starts all services)
[2] Manual startup (requires Redis, RabbitMQ & separate terminals) Enter your choice (1 or 2): 1
ℹ️ Starting Suna with Docker Compose...
ℹ️ Building images locally...
Compose can now delegate builds to bake for better performance.To do so, set COMPOSE_BAKE=true.
[+] Building 426.5s (34/34) FINISHED docker:desktop-linux=> [worker internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 1.63kB 0.0s => [backend internal] load metadata for docker.io/library/python:3.11-slim 6.3s => [worker internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s => [backend 1/7] FROM docker.io/library/python:3.11-slim@sha256:dbf1de478a55d6763afaa39c2f3d7b54b25230614980276de5cacdde79529d0c 0.1s => => resolve docker.io/library/python:3.11-slim@sha256:dbf1de478a55d6763afaa39c2f3d7b54b25230614980276de5cacdde79529d0c 0.0s => [worker internal] load build context 0.0s => => transferring context: 7.75kB 0.0s => CACHED [backend 2/7] WORKDIR /app 0.0s => CACHED [backend 3/7] RUN apt-get update && apt-get install -y --no-install-recommends build-essential curl && rm -rf /var/lib/apt/lists/* 0.0s => CACHED [backend 4/7] RUN useradd -m -u 1000 appuser && mkdir -p /app/logs && chown -R appuser:appuser /app 0.0s => CACHED [worker 5/7] COPY --chown=appuser:appuser requirements.txt . 0.0s => [worker 6/7] RUN pip install --no-cache-dir -r requirements.txt gunicorn 110.4s => [worker 7/7] COPY --chown=appuser:appuser . . 0.1s=> [worker] exporting to image 12.7s=> => exporting layers 9.7s=> => exporting manifest sha256:a6e63d8f4567dc7ce2dd73de276ab5f62b50ae4991dbfa03f890eea7cc0c9d78 0.0s=> => exporting config sha256:236895aed0cf64c4db115b31dbfae75bbe84ec6c4d94d3f7f1648a1961435ef8 0.0s=> => exporting attestation manifest sha256:846935b1db61c8759fc8603810ba0abe08e537d4f5a86f2f678a26d7f96fc6e8 0.0s=> => exporting manifest list sha256:f9938f968b86a5dfdbbdfd7b4eb8b76a848f2937c4c45eaa13e8f5f924d4fad6 0.0s=> => naming to docker.io/library/suna-worker:latest 0.0s => => unpacking to docker.io/library/suna-worker:latest 2.8s => [worker] resolving provenance for metadata file 0.0s=> [backend internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 1.63kB 0.0s => [backend internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s => [backend internal] load build context 0.0s => => transferring context: 5.75kB 0.0s => CACHED [backend 5/7] COPY --chown=appuser:appuser requirements.txt . 0.0s => CACHED [backend 6/7] RUN pip install --no-cache-dir -r requirements.txt gunicorn 0.0s => CACHED [backend 7/7] COPY --chown=appuser:appuser . . 0.0s => [backend] exporting to image 0.1s => => exporting layers 0.0s => => exporting manifest sha256:14fa145bd6eb38ce984f807e8744d0937a4fc107f068d40433d7c14bea4d1476 0.0s => => exporting config sha256:d6f08a5c47d5a9ef5e550f4ef620be566ce98db2b10141b4f123874939dcdef8 0.0s => => exporting attestation manifest sha256:9aa719d69af0e8c88936163351a6fa4cf448145ec7c25f06833782299e46ed28 0.0s => => exporting manifest list sha256:fb06e27847e8b9b247ae01196489d0f75305e6c736b823793bc50850cc55edeb 0.0s => => naming to docker.io/library/suna-backend:latest 0.0s=> => unpacking to docker.io/library/suna-backend:latest 0.0s => [backend] resolving provenance for metadata file 0.0s => [frontend internal] load build definition from Dockerfile 0.0s=> => transferring dockerfile: 704B 0.0s => [frontend internal] load metadata for docker.io/library/node:20-slim 2.8s => [frontend internal] load .dockerignore 0.0s=> => transferring context: 2B 0.0s => [frontend 1/7] FROM docker.io/library/node:20-slim@sha256:cb4abfbba7dfaa78e21ddf2a72a592e5f9ed36ccf98bdc8ad3ff945673d288c2 21.0s => => resolve docker.io/library/node:20-slim@sha256:cb4abfbba7dfaa78e21ddf2a72a592e5f9ed36ccf98bdc8ad3ff945673d288c2 0.0s => => sha256:d9d139bf2ac215a0d57ef09e790699a8fd5587c00200db6a91446278356b32aa 447B / 447B 12.3s => => sha256:b12d1e6fd3ba6067543928fa3e4c9a9307711cf5a4593699d157dba3af3e7d21 1.71MB / 1.71MB 15.3s => => sha256:d34dc2c1b56bf7f58faea3b73986ac0a274f2b369cc5f24a5ea26015fdd57e95 41.17MB / 41.17MB 19.2s => => sha256:057bf83be68af82a505c30eb852a4b542c264fe429954c8e0c0e204a9c9dd86e 3.31kB / 3.31kB 20.4s => => extracting sha256:057bf83be68af82a505c30eb852a4b542c264fe429954c8e0c0e204a9c9dd86e 0.0s => => extracting sha256:d34dc2c1b56bf7f58faea3b73986ac0a274f2b369cc5f24a5ea26015fdd57e95 0.4s => => extracting sha256:b12d1e6fd3ba6067543928fa3e4c9a9307711cf5a4593699d157dba3af3e7d21 0.0s => => extracting sha256:d9d139bf2ac215a0d57ef09e790699a8fd5587c00200db6a91446278356b32aa 0.0s => [frontend internal] load build context 0.4s => => transferring context: 15.10MB 0.3s => [frontend 2/7] WORKDIR /app 0.4s => [frontend 3/7] COPY package*.json ./ 0.0s => [frontend 4/7] RUN apt-get update && apt-get install -y --no-install-recommends python3 make g++ build-essential pkg-config libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev && rm -rf /var/lib/apt/lists/* 95.4s => [frontend 5/7] RUN npm install 31.0s => [frontend 6/7] COPY . . 0.4s => [frontend 7/7] RUN npm run build 96.1s => [frontend] exporting to image 42.2s => => exporting layers 32.0s => => exporting manifest sha256:5aa3bf772b57c08f01051d99a26dd00ca11bd0f6c9964672d854b5a9237ca2cc 0.0s => => exporting config sha256:c29ae31e61f62fbc9cc353572cc75685d91c48c4f930fc0e8aba4f785f0a0a33 0.0s => => exporting attestation manifest sha256:a228930985cc14ebd9460baadf26c81cc3e51c65f11868d9b576ce2c917604a2 0.0s => => exporting manifest list sha256:c905a71017595001e983964ecb5076c266eee581bd54b08a8face117267b8f0e 0.0s => => naming to docker.io/library/suna-frontend:latest 0.0s => => unpacking to docker.io/library/suna-frontend:latest 10.0s => [frontend] resolving provenance for metadata file 0.0s
[+] Running 11/11✔ backend Built 0.0s ✔ frontend Built 0.0s ✔ worker Built 0.0s ✔ Network suna_default Created 0.6s ✔ Volume "suna_rabbitmq_data" Created 0.0s ✔ Volume "suna_redis_data" Created 0.0s ✔ Container suna-rabbitmq-1 Healthy 15.6s ✔ Container suna-redis-1 Healthy 15.6s ✔ Container suna-worker-1 Started 13.8s ✔ Container suna-backend-1 Started 16.1s ✔ Container suna-frontend-1 Started 19.0s
ℹ️ Waiting for services to start...
⚠️ Some services might not be running correctly. Check 'docker compose ps' for details.✨ Suna Setup Complete! ✨ℹ️ Suna is configured to use openrouter/deepseek/deepseek-chat-v3-0324:free as the default LLM model
ℹ️ Your Suna instance is now running!
ℹ️ Access it at: http://localhost:3000
ℹ️ Create an account using Supabase authentication to start using SunaUseful Docker commands:docker compose ps - Check the status of Suna servicesdocker compose logs - View logs from all servicesdocker compose logs -f - Follow logs from all servicesdocker compose down - Stop Suna servicesdocker compose up -d - Start Suna services (after they've been stopped)(.venv) F:\PythonProjects\suna>
- 访问日志中输出的
http://localhost:3000网页
,使用 Supabase 账号注册登录。
相关文章:

【笔记】Windows 成功部署 Suna 开源的通用人工智能代理项目部署日志
#工作记录 本地部署运行截图 kortix-ai/suna: Suna - 开源通用 AI 代理 项目概述 Suna 是一个完全开源的 AI 助手,通过自然对话帮助用户轻松完成研究、数据分析等日常任务。它结合了强大的功能和直观的界面,能够理解用户需求并提供结果。其强…...
关于ffplay在macos上运行奔溃的问题
这个问题大概是由于 MacOS 的问题引起的,奔溃的地方在 SDL2 的代码中,如果直接使用 brew 安装 SDL2就会遇到这个问题,所以需要修改 SDL2源码然后再编译安装。 我这里采用的是 origin/release-2.28.x 分支,修改部分如下࿱…...

Linux531rsync定时同步 再回忆
rsync定时同步 环境配置 关闭防火墙,selinux systemctl stop firewalld systemctl disable firewall setenforce 0 cat /etc/selinux/configpei SELINUXdisable设置主机名 systemctl set-hostname code systemctl set-hostname backup设置静态IP rsync由于要设…...
Elasticsearch 分析器介绍
在 Elasticsearch 的世界里,构建高效搜索引擎的关键一环,便是透彻理解分析器(Analyzer)的工作机制。一个优秀的搜索引擎,能够精准地返回与用户查询紧密相关的文档,而这背后,正是分析器在默默发挥着核心作用。它不仅负责处理待索引的文档,还在用户发起查询时,智能评估哪…...

【KWDB 创作者计划】_探秘浪潮KWDB数据库:从时间索引到前沿技术
探秘浪潮KWDB数据库:从时间索引到前沿技术 文章目录 探秘浪潮KWDB数据库:从时间索引到前沿技术引言1.浪潮KWDB数据库时间索引深度解析1.1时间索引工作原理1.2时间索引创建与管理实践 2.浪潮KWDB数据库前沿产品技术纵览2.1多模融合存储引擎2.2就地计算技术…...

安卓逆向篇LSP 模块HOOK 添加技术绕过检测算法解密逻辑验证
前置解释: 0 、 Magisk : 是当前 Android 社区用来获取 root 权限的主流方式开源工具 1 、 LSP 框架: XPosed 框架因只支持安卓 8 及以下,故高版本应使用 MagiskLSPosed 2 、 HOOK 技术: 钩子技术&…...
【SQL】关键字
ORDER BY ORDER BY(排序) 语句可以按照一个或多个列的值进行升序(ASC)或降序(DESC)排序。 MAX / MIN MAX() 函数返回一组值中的最大值。这个函数常用于数字字段,但也可以用于文本字段来找出按字典顺序最后的元素。 …...

第一节 51单片机概述
目录 一、单片机系统组成 (一)、单片机硬件系统 (二)单片机的软件系统 二、STC89C52单片机 (1)、基本信息 (2)、命名规则 (3)、单片机内部结构图 &am…...

Google car key:安全、便捷的汽车解锁新选择
有了兼容的汽车和 Android 手机,Google car key可让您将Android 手机用作车钥匙。您可以通过兼容的 Android 手机锁定、解锁、启动汽车并执行更多功能。但是,Google car key安全吗?它是如何工作的?如果我的手机电池没电了怎么办&a…...

720全景展示:VR全景的技术原理及应用
VR720全景展示:技术原理及应用探索 720全景技术,作为当前全球范围内迅速崛起流行的视觉新技术,为用户带来了全新的真实现场感和交互式的体验。凭借全方位、无死角的视觉展示特性,在VR(虚拟现实)领域中得到…...

定制一款国密浏览器(13):预置国密根证书到浏览器
由于国密算法没有得到国外的认可,所以 Chromium、Firefox 等浏览器均不支持国密算法。即使我们修改了 Chromium 的源码,增加了国密算法的支持,但还不能在浏览器中正常使用。因为这涉及到证书的信任问题,国密证书都是国内厂商签发的,国密根证书并没有集成到系统和浏览器中。…...

PowerBI企业运营分析——线性回归销售预测
PowerBI企业运营分析——线性回归销售预测 欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。 该平台通过整合多源数据,实现关键指标的实时监控,从而迅速洞察业务动态,精准…...
大模型运维过程中常见的一些操作
1. 模型部署与环境配置 基础设施准备:部署 GPU 集群、TPU 等专用硬件,配置分布式计算环境(如 Kubernetes)。推理服务搭建:使用 Triton Inference Server、TensorFlow Serving 等框架部署模型,优化批处理和…...
C# 关于闭包与多线程结合使用
开头先看一篇文章:【转】编写高质量代码改善C#程序的157个建议——建议75:警惕线程不会立即启动 - 指间的徘徊 - 博客园d 摘抄: static int _id 0; static void Main() { for (int i 0; i < 10; i, _id) { Thread t new Thread…...

LangFuse:开源LLM工程平台的革新实践
文章目录 一 架构设计与技术栈二 增强型监控能力三 提示词工程支持(新增)四 性能优化实践五 LangFuse部署(docker)和代码集成5.1 LangFuse平台部署5.2 LangFuse代码集成和检测体验 一 架构设计与技术栈 LangFuse采用模块化架构设…...

新视角!经济学顶刊QJE用文本分析探究新技术扩散
美国圣路易斯联邦储备银行Aakash Kalyani、美国斯坦福大学与国家经济研究局Nicholas Bloom、英国伦敦商学院Marcela Carvalho和其合作者们共同研究的“The Diffusion of New Technologies(新技术的扩散)”在顶刊The Quarterly Journal of Economics中发表…...
微信小程序返回上一页监听
本文实现的是微信小程序在返回上一页时获取通知并自定义业务。 最简单的实现: 使用 wx.enableAlertBeforeUnload() 优点:快速接入 缺点:手势不能识别、无法自定义弹窗内容(仅询问) 方法二: page-conta…...

5月31日day41打卡
简单CNN 知识回顾 数据增强卷积神经网络定义的写法batch归一化:调整一个批次的分布,常用与图像数据特征图:只有卷积操作输出的才叫特征图调度器:直接修改基础学习率 卷积操作常见流程如下: 1. 输入 → 卷积层 → Batch…...
“粽”览全局:分布式系统架构与实践深度解析(端午特别版)
第一部分:引言——技术世界的“端午”第二部分:分布式系统概述——粽子节点初探第三部分:核心技术详解——技术“粽子”大解构 粽叶篇:通信协议糯米篇:一致性算法馅料篇:任务调度与计算包扎篇:系…...

STM32G4 电机外设篇(一) GPIO+UART
目录 一、STM32G4 电机外设篇(一) GPIOUART1 GPIO1.1 STM32CUBEMX 配置以及Keil代码1.2 代码和实验现象 2 UART2.1 STM32CUBEMX 配置以及Keil代码2.2 代码和实验现象 附学习参考网址欢迎大家有问题评论交流 (* ^ ω ^) 一、STM32G4 电机外设篇࿰…...
代理IP在云计算中的应用:技术演进与场景实践
一、技术融合的必然性:代理IP与云计算的协同效应 在数字化转型的浪潮中,云计算已成为企业IT架构的核心底座,而代理IP技术则作为网络访问的关键基础设施,两者在技术演进路径上呈现出深度融合的趋势。云计算的弹性资源池与代理IP的…...

Lua 的速度为什么比 Python 快
Lua 的执行速度通常比 Python 快,主要原因在于其解释器设计轻量、虚拟机效率高、内存管理策略更为精简,以及语言本身对动态特性的控制较严。其中,Lua 使用了 register-based 的虚拟机架构,而 Python(CPython࿰…...

【iOS】方法交换
方法交换 method-swizzling是什么相关API方法交换的风险method-swizzling使用过程中的一次性问题在当前类中进行方法交换类方法的方法交换 方法交换的应用 method-swizzling是什么 method-swizzling的含义是方法交换,他的主要作用是在运行的时候将一个方法的实现替…...
跑步相关术语解释
老婆一直问我PB是啥意思,写个文章解释下。 1. 成绩类 PB (Personal Best):个人最好成绩,指在特定距离(如10K、全马)中的最快完赛时间 。PW (Personal Worst)࿱…...

数据结构:线性表的基本操作与链式表达
个人主页 文章专栏 成名之作——赛博算命之梅花易数的Java实现 陆续回三中,忘回漏回滴滴~感谢各位大佬的支持 一.线性表的定义和基本操作 1.1定义 线性表是具有相同数据类型的n个数据元素的有序数列,n为表长 第一个元素叫表头元素,除了他…...

C++:设计模式--工厂模式
更多内容:XiaoJ的知识星球 目录 1.简单工厂模式1.1 简单工厂1.2 实现步骤1.3 实现代码1.4 优缺点 2.工厂模式2.1 工厂模式2.2 实现步骤2.3 实现代码2.4 优缺点 3.抽象工厂模式3.1 抽象工厂模式3.2 实现步骤3.3 实现代码3.4 优缺点 1.简单工厂模式 . 1.1 简单工厂 …...
【前端优化】使用speed-measure-webpack-plugin分析前端运行、打包耗时,优化项目
记录下 项目安装speed-measure-webpack-plugin 打包分析: 修改vue.config.js文件 speed-measure-webpack-plugin进行构建速度分析,需要包裹整个 configureWebpack 配置 const originalConfig {publicPath: /,assetsDir: assets,parallel: true,devS…...

国产化Excel处理组件Spire.XLS教程:如何使用 C# 将 Excel(XLS 或 XLSX)文件转换为 PDF
Excel 是常见的数据处理与呈现工具,但直接共享 Excel 文件可能面临格式错乱、兼容性不足或数据泄露的风险。为了保证文档在不同平台和终端上的稳定展示,开发者常常需要将 Excel 文件转换为 PDF 格式。 本文将详细介绍如何使用 C#和.NET Excel 库——Spi…...

B3623 枚举排列(递归实现排列型枚举)
B3623 枚举排列(递归实现排列型枚举) - 洛谷 题目描述 今有 n 名学生,要从中选出 k 人排成一列拍照。 请按字典序输出所有可能的排列方式。 输入格式 仅一行,两个正整数 n,k。 输出格式 若干行,每行 k 个正整数…...
vue-08(使用slot进行灵活的组件渲染)
使用slot进行灵活的组件渲染 作用域slot是 Vue.js 中的一种强大机制,它允许父组件自定义子组件内容的呈现。与仅向下传递数据的常规 props 不同,作用域 slot 为父级提供了一个模板,然后子级可以填充数据。这提供了高度的灵活性和可重用性&am…...