Open WebUI – 本地化部署大模型仿照 ChatGPT用户界面

Open WebUI介绍:

Open WebUI 是一个仿照 ChatGPT 界面,为本地大语言模型提供图形化界面的开源项目,可以非常方便的调试、调用本地模型。你能用它连接你在本地的大语言模型(包括 Ollama 和 OpenAI 兼容的 API),也支持远程服务器。Docker 部署简单,功能非常丰富,包括代码高亮、数学公式、网页浏览、预设提示词、本地 RAG 集成、对话标记、下载模型、聊天记录、语音支持等。

官网地址:https://openwebui.com

GitHub:GitHub - open-webui/open-webui: User-friendly WebUI for LLMs (Formerly Ollama WebUI)

功能:

💻 直观界面:我们的聊天界面深受ChatGPT启发,旨在确保用户获得友好易用的体验。

📱 响应式设计:无论是在桌面电脑还是移动设备上,都能享受一致而流畅的用户体验。

⚡ 迅捷响应速度:畅享快速且高效的响应性能。

🚀 轻松启动:采用Docker或Kubernetes(通过kubectl、kustomize或helm工具)实现无缝安装,带给您无烦恼的初始化体验。

✅ 代码语法高亮显示:得益于我们的语法高亮功能,您可以享受到更为清晰易读的代码展示效果。

✍️数字化写作 ✂️ 全面支持Markdown和LaTeX:借助全面集成的Markdown和LaTeX功能,全面提升您的LLM互动体验。

📚 本地RAG集成:步入未来聊天交互的新篇章,我们内建了Retrieval Augmented Generation(RAG)支持,让您能够将文档操作无缝融合进聊天流程。只需简单地将文档载入聊天或添加文件至文档库,然后通过#命令即可轻松访问文档内容。此功能目前尚处于alpha测试阶段,我们正不断改进和完善,以确保其稳定性和性能表现达到最优。

总结一下,重点理解为如下三点:

  • Open WebUI 是一个多功能且直观的开源用户界面,与 ollama 配合使用,它作为一个webui,为用户提供了一个私有化的 ChatGPT 体验。
  • Open WebUI 集成了 Retrieval Augmented Generation(RAG)技术,允许用户将文档、网站和视频等作为上下文信息,供 AI 在回答问题时参考,以提供更准确的信息。
  • 通过调整 Top K 值和改进 RAG 模板提示词来提高基于文档的问答系统的准确性。

Q:关于Open WebUI的安全性,尤其是第一次使用还需要注册,注册信息到哪里去了?

open-webui是一个用于构建Web用户界面的开源库,它通常不直接处理数据传输,而是作为前端框架与后端服务器之间的中介。

第一次使用注册信息,是要求您注册成为管理员用户。这确保了如果Open WebUI被外部访问,您的数据仍然是安全的。

需要注意的是,所有东西都是本地的。我们不收集您的数据。当您注册时,所有信息都会留在您的服务器中,永远不会离开您的设备。

您的隐私和安全是我们的首要任务,确保您的数据始终处于您的控制之下。

参考:📋 FAQ | Open WebUI

Q: Why am I asked to sign up? Where are my data being sent to?

A: We require you to sign up to become the admin user for enhanced security. This ensures that if the Open WebUI is ever exposed to external access, your data remains secure. It's important to note that everything is kept local. We do not collect your data. When you sign up, all information stays within your server and never leaves your device. Your privacy and security are our top priorities, ensuring that your data remains under your control at all times.

Open WebUI安装:

目前我只在linux环境下,做了安装实践, 在安装过程中,我重点参考了csdn上的这篇文章:

linux环境安装参考: ollama+open-webui,本地部署自己的大模型

操作步骤很详细,包括安装过程中遇到的报错问题,基本上都可以按照文章中的步骤,逐步执行解决。

还有一篇文章,写的也很详细,如果是windows下安装,建议参考下:

windows环境安装参考:本机部署大语言模型:Ollama和OpenWebUI实现各大模型的人工智能自由

另外,我使用的centos系统,在安装过程中遇到如下错误:

(open-webui) [root@master open-webui]# npm i

node: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by node)

node: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by node)

node: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.28' not found (required by node)

node: /lib64/libc.so.6: version `GLIBC_2.25' not found (required by node)

解决办法:node: /lib64/libm.so.6: version `GLIBC_2.27‘ not found问题解决方案_libm.so.6 glibc2.27-CSDN博客

另外,open-webui安装过程中,需要连接'https://huggingface.co' 网站,会报错无法连接。

我通过简单设置环境变量解决:export HF_ENDPOINT=HF-Mirror

下面给出了我在conda虚拟环境创建完后,并且npm也安装ok后,open-webui的安装执行过程快照,仅供参考:

(base) [root@master backend]# conda activate open-webui
(open-webui) [root@master backend]# bash start.sh 
No WEBUI_SECRET_KEY provided
Loading WEBUI_SECRET_KEY from .webui_secret_key
USER_AGENT environment variable not set, consider setting it to identify your requests.
No sentence-transformers model found with name sentence-transformers/all-MiniLM-L6-v2. Creating a new one with mean pooling.
Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connection.py", line 196, in _new_connsock = connection.create_connection(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/util/connection.py", line 85, in create_connectionraise errFile "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/util/connection.py", line 73, in create_connectionsock.connect(sa)
OSError: [Errno 101] Network is unreachableThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connectionpool.py", line 789, in urlopenresponse = self._make_request(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connectionpool.py", line 490, in _make_requestraise new_eFile "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connectionpool.py", line 466, in _make_requestself._validate_conn(conn)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connectionpool.py", line 1095, in _validate_connconn.connect()File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connection.py", line 615, in connectself.sock = sock = self._new_conn()File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connection.py", line 211, in _new_connraise NewConnectionError(
urllib3.exceptions.NewConnectionError: <urllib3.connection.HTTPSConnection object at 0x7f8572048eb0>: Failed to establish a new connection: [Errno 101] Network is unreachableThe above exception was the direct cause of the following exception:Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/requests/adapters.py", line 667, in sendresp = conn.urlopen(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/connectionpool.py", line 843, in urlopenretries = retries.increment(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/urllib3/util/retry.py", line 519, in incrementraise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /sentence-transformers/all-MiniLM-L6-v2/resolve/main/config.json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8572048eb0>: Failed to establish a new connection: [Errno 101] Network is unreachable'))During handling of the above exception, another exception occurred:Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 1722, in _get_metadata_or_catch_errormetadata = get_hf_file_metadata(url=url, proxies=proxies, timeout=etag_timeout, headers=headers)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/utils/_validators.py", line 114, in _inner_fnreturn fn(*args, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 1645, in get_hf_file_metadatar = _request_wrapper(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 372, in _request_wrapperresponse = _request_wrapper(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 395, in _request_wrapperresponse = get_session().request(method=method, url=url, **params)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/requests/sessions.py", line 589, in requestresp = self.send(prep, **send_kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/requests/sessions.py", line 703, in sendr = adapter.send(request, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/utils/_http.py", line 66, in sendreturn super().send(request, *args, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/requests/adapters.py", line 700, in sendraise ConnectionError(e, request=request)
requests.exceptions.ConnectionError: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /sentence-transformers/all-MiniLM-L6-v2/resolve/main/config.json (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f8572048eb0>: Failed to establish a new connection: [Errno 101] Network is unreachable'))"), '(Request ID: 430abcfa-0ffb-419d-a853-40caed43b5c8)')The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/transformers/utils/hub.py", line 399, in cached_fileresolved_file = hf_hub_download(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/utils/_validators.py", line 114, in _inner_fnreturn fn(*args, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 1221, in hf_hub_downloadreturn _hf_hub_download_to_cache_dir(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 1325, in _hf_hub_download_to_cache_dir_raise_on_head_call_error(head_call_error, force_download, local_files_only)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/huggingface_hub/file_download.py", line 1826, in _raise_on_head_call_errorraise LocalEntryNotFoundError(
huggingface_hub.utils._errors.LocalEntryNotFoundError: An error happened while trying to locate the file on the Hub and we cannot find the requested files in the local cache. Please check your connection and try again or make sure your Internet connection is on.The above exception was the direct cause of the following exception:Traceback (most recent call last):File "/root/miniconda3/envs/open-webui/bin/uvicorn", line 8, in <module>sys.exit(main())File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/click/core.py", line 1157, in __call__return self.main(*args, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/click/core.py", line 1078, in mainrv = self.invoke(ctx)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/click/core.py", line 1434, in invokereturn ctx.invoke(self.callback, **ctx.params)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/click/core.py", line 783, in invokereturn __callback(*args, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/main.py", line 410, in mainrun(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/main.py", line 577, in runserver.run()File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/server.py", line 65, in runreturn asyncio.run(self.serve(sockets=sockets))File "/root/miniconda3/envs/open-webui/lib/python3.8/asyncio/runners.py", line 44, in runreturn loop.run_until_complete(main)File "uvloop/loop.pyx", line 1517, in uvloop.loop.Loop.run_until_completeFile "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/server.py", line 69, in serveawait self._serve(sockets)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/server.py", line 76, in _serveconfig.load()File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/config.py", line 434, in loadself.loaded_app = import_from_string(self.app)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/uvicorn/importer.py", line 19, in import_from_stringmodule = importlib.import_module(module_str)File "/root/miniconda3/envs/open-webui/lib/python3.8/importlib/__init__.py", line 127, in import_modulereturn _bootstrap._gcd_import(name[level:], package, level)File "<frozen importlib._bootstrap>", line 1014, in _gcd_importFile "<frozen importlib._bootstrap>", line 991, in _find_and_loadFile "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlockedFile "<frozen importlib._bootstrap>", line 671, in _load_unlockedFile "<frozen importlib._bootstrap_external>", line 843, in exec_moduleFile "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removedFile "/root/open-webui/backend/main.py", line 25, in <module>from apps.rag.main import app as rag_appFile "/root/open-webui/backend/apps/rag/main.py", line 85, in <module>embedding_functions.SentenceTransformerEmbeddingFunction(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/chromadb/utils/embedding_functions.py", line 83, in __init__self.models[model_name] = SentenceTransformer(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/sentence_transformers/SentenceTransformer.py", line 299, in __init__modules = self._load_auto_model(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/sentence_transformers/SentenceTransformer.py", line 1324, in _load_auto_modeltransformer_model = Transformer(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/sentence_transformers/models/Transformer.py", line 53, in __init__config = AutoConfig.from_pretrained(model_name_or_path, **config_args, cache_dir=cache_dir)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/transformers/models/auto/configuration_auto.py", line 934, in from_pretrainedconfig_dict, unused_kwargs = PretrainedConfig.get_config_dict(pretrained_model_name_or_path, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/transformers/configuration_utils.py", line 632, in get_config_dictconfig_dict, kwargs = cls._get_config_dict(pretrained_model_name_or_path, **kwargs)File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/transformers/configuration_utils.py", line 689, in _get_config_dictresolved_config_file = cached_file(File "/root/miniconda3/envs/open-webui/lib/python3.8/site-packages/transformers/utils/hub.py", line 442, in cached_fileraise EnvironmentError(
OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like sentence-transformers/all-MiniLM-L6-v2 is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.(open-webui) [root@master backend]# export HF_ENDPOINT=https://hf-mirror.com
(open-webui) [root@master backend]# bash start.sh 
No WEBUI_SECRET_KEY provided
Loading WEBUI_SECRET_KEY from .webui_secret_key
USER_AGENT environment variable not set, consider setting it to identify your requests.
modules.json: 100%|██████████████████████████████████████████████████████████████████████████████████████| 349/349 [00:00<00:00, 95.8kB/s]
config_sentence_transformers.json: 100%|█████████████████████████████████████████████████████████████████| 116/116 [00:00<00:00, 25.3kB/s]
README.md: 10.7kB [00:00, 19.1MB/s]
sentence_bert_config.json: 100%|███████████████████████████████████████████████████████████████████████| 53.0/53.0 [00:00<00:00, 25.2kB/s]
config.json: 612B [00:00, 283kB/s]                                                                                                        
model.safetensors: 100%|█████████████████████████████████████████████████████████████████████████████| 90.9M/90.9M [00:16<00:00, 5.67MB/s]
tokenizer_config.json: 100%|█████████████████████████████████████████████████████████████████████████████| 350/350 [00:00<00:00, 71.3kB/s]
vocab.txt: 210kB [00:17, 30.4kB/s]Error while downloading from https://hf-mirror.com/sentence-transformers/all-MiniLM-L6-v2/resolve/main/vocab.txt: HTTPSConnectionPool(host='hf-mirror.com', port=443): Read timed out.
Trying to resume download...
vocab.txt: 232kB [00:00, 24.2MB/s]
vocab.txt: 214kB [00:29, 7.34kB/s]
tokenizer.json: 466kB [00:03, 155kB/s] 
special_tokens_map.json: 100%|███████████████████████████████████████████████████████████████████████████| 112/112 [00:00<00:00, 50.8kB/s]
1_Pooling/config.json: 100%|█████████████████████████████████████████████████████████████████████████████| 190/190 [00:00<00:00, 32.2kB/s]
INFO:     Started server process [71959]
INFO:     Waiting for application startup.
Intialized router with Routing strategy: simple-shuffleRouting fallbacks: NoneRouting context window fallbacks: NoneRouter Redis Caching=None#------------------------------------------------------------#
#                                                            #
#           'It would help me if you could add...'            #
#        https://github.com/BerriAI/litellm/issues/new        #
#                                                            #
#------------------------------------------------------------#Thank you for using LiteLLM! - Krrish & IshaanGive Feedback / Get Help: https://github.com/BerriAI/litellm/issues/newIntialized router with Routing strategy: simple-shuffleRouting fallbacks: NoneRouting context window fallbacks: NoneRouter Redis Caching=None
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8080 (Press CTRL+C to quit)

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

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

相关文章

emqx5.6.1 数据、配置备份与迁移

EMQX 支持导入和导出的数据包括&#xff1a; EMQX 配置重写的内容&#xff1a; 认证与授权配置规则、连接器与 Sink/Source监听器、网关配置其他 EMQX 配置内置数据库 (Mnesia) 的数据 Dashboard 用户和 REST API 密钥客户端认证凭证&#xff08;内置数据库密码认证、增强认证…

公共网络IP地址不正确?别担心,这里有解决方案

在数字化时代&#xff0c;公共网络IP地址的正确性对于我们的在线体验至关重要。它不仅是网络连接的标识&#xff0c;更是确保我们正常访问互联网资源、享受网络服务的基础。然而&#xff0c;有时我们可能会遇到公共网络IP地址不正确的情况&#xff0c;这不仅会影响我们的网络速…

【已解决】SpringBoot图片更新需重启服务器才能显示

问题描述 1、更新头像&#xff0c;并跳转回列表页&#xff0c;发现显示不出来 2、但是前端获取用户头像的信息是在加载页面就会被调用的&#xff0c;同时前端也不存在所谓的缓存问题&#xff0c;因为没有动这部分代码。 但查看响应是能获得正确的信息&#xff08;前端打印图片…

数据结构--单链表(图文)

单链表的概念 在单链表中&#xff0c;每个元素&#xff08;称为节点&#xff09;包含两部分&#xff1a;一部分是存储数据的数据域&#xff0c;另一部分是存储下一个节点地址的指针域。这里的“单”指的是每个节点只有一个指向下一个节点的指针。 节点&#xff1a;链表中的基…

Apple - Secure Coding Guide

本文翻译整理自&#xff1a;Secure Coding Guide https://developer.apple.com/library/archive/documentation/Security/Conceptual/SecureCodingGuide/Introduction.html#//apple_ref/doc/uid/TP40002477-SW1 文章目录 一、安全编码指南简介1、概览黑客和攻击者没有平台是免疫…

【办公类-50-01】20240620自主游戏观察记录表19周内容打乱

背景需求&#xff1a; 又到了期末&#xff0c;各种班级资料需要提交。 有一份自主游戏观察记录需要写19周&#xff08;每周2次&#xff09;的观察记录&#xff0c;并根据参考书填写一级、三级、五级的评价指标。 去年中六班的时候&#xff0c;我很认真的手写了21周的户外游戏…

具有 Hudi、MinIO 和 HMS 的现代数据湖

Apache Hudi 已成为管理现代数据湖的领先开放表格式之一&#xff0c;直接在现代数据湖中提供核心仓库和数据库功能。这在很大程度上要归功于 Hudi 提供了表、事务、更新/删除、高级索引、流式摄取服务、数据聚类/压缩优化和并发控制等高级功能。 我们已经探讨了 MinIO 和 Hudi…

Vue3 - 在项目中使用vue-i18n不生效的问题

检查和配置 Vue I18n 确保你已经正确安装了Vue I18n并且配置了组合API模式。 安装 Vue I18n npm install vue-i18nnext配置 i18n.js import { createI18n } from vue-i18n; import messages from ./messages;const i18n createI18n({legacy: false, // 使用组合 API 模式l…

Linux检查端口nmap

yum install -y nmap # 查看本机在运行的服务的端口号 nmap 127.0.0.1 补充&#xff1a;netstat netstat -tunlp | grep 3306

读《文明之光》第2册总结

《文明之光》系列大致按照从地球诞生到近现代的顺序讲述了人类文明进程的各个阶段&#xff0c;每个章节相对独立&#xff0c;全景式地展现了人类文明发展历程中的多样性。《文明之光》系列第二册讲述了从近代科学兴起&#xff0c;到工业革命时代&#xff0c;以及原子能应用这一…

C++/Qt 小知识记录7

工作中遇到的一些小问题&#xff0c;总结的小知识记录&#xff1a;C/Qt 小知识7 编译FFMPEG遇到的问题CMakeLists.txt配置FFMPEG的依赖方式&#xff1a; x264在Windows下编译生成*.libVS编译Qt工程时&#xff0c;遇到提示Change Qt Version的情况在QtOsg的窗口上嵌入子窗口&…

基于JSP的交通事故档案管理系统

开头语&#xff1a;你好&#xff0c;我是计算机学长猫哥&#xff0c;如果你对系统有更多的期待或建议&#xff0c;欢迎随时联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPJava 工具&#xff1a;ECLIPSE、Tomcat 系统展示 首页 管理员界…

车辆数据的提取、定位和融合(其一 共十二篇)

第一篇&#xff1a; System Introduction 第二篇&#xff1a;State of the Art 第三篇&#xff1a;localization 第四篇&#xff1a;Submapping and temporal weighting 第五篇&#xff1a;Mapping of Point-shaped landmark data 第六篇&#xff1a;Clustering of landma…

Dockerfile实战

Dockerfile是用来快速创建自定义镜像的一种文本格式的配置文件&#xff0c;在持续集成和持续部署时&#xff0c;需要使用Dockerfile生成相关应用程序的镜像。 Dockerfile常用命令 FROM&#xff1a;继承基础镜像MAINTAINER&#xff1a;镜像制作作者的信息&#xff0c;已弃用&a…

文件管理—linux(基础IO)

目录 ​编辑 一、C语言文件接口&#xff08;库函数&#xff09; hello.c写文件 hello.c读文件 输出信息到显示器 stdin & stdout & stderr 二、系统文件I/O&#xff08;系统调用&#xff09; hello.c 写文件&#xff1a; hello.c读文件 接口介绍 open open…

JetBrains PhpStorm 2024 mac/win版:探索PHP之美,智慧编程新境界

JetBrains PhpStorm 2024是一款卓越的PHP集成开发环境(IDE)&#xff0c;专为满足现代PHP开发者的需求而精心打造。它凭借强大的功能和出色的性能&#xff0c;赢得了全球开发者的广泛赞誉。 PhpStorm 2024 mac/win版获取 PhpStorm 2024提供了智能的代码编辑功能&#xff0c;包括…

【TKGQA】关于时间知识图谱问答的一篇综述阅读

前言 时间知识图谱问答&#xff08;TKGQA&#xff09;是KBQA中一个关注时间问题的重要子任务。时间问题包含时间约束、需要时间标记的答案&#xff0c;反映了现实世界事件的动态和演变性质。 一、TKGQA 1.1 概述 时间知识图谱&#xff08;TKG&#xff09;&#xff1a; 通常表…

Android 添加自己的时钟小部件

小部件&#xff0c;也叫微件&#xff0c; 它的介绍参考官网 应用 widget 概览 https://developer.android.google.cn/develop/ui/views/appwidgets/overview?hlzh-cn 直接上图&#xff0c;原生系统上&#xff0c;时钟应用的小部件效果。 我也整一个。 1.创建小部件布局文…

tp5学习基本控制器和视图

1 文件结构 正在上传…重新上传取消 application 主要操作目录 extend 扩展 public 入口文件 runtime 运行时文件 thinkphp 核心代码 vendor 三方扩展 2 public/index.php 解析 正在上传…重新上传取消 .htaccess Apache 可写文件 index.php 主目录 router.php 路由文件 3 inde…

【34W字CISSP备考笔记】域1:安全与风险管理

1.1 理解、坚持和弘扬职业道德 1.1.1.(ISC)职业道德规范 1、行为得体、诚实、公正、负责、守法。 2、为委托人提供尽职、合格的服务。 3、促进和保护职业。 4、保护社会、公益、必需的公信和自信&#xff0c;保护基础设施。 1.1.2.组织道德规范 1、RFC 1087 &#xff0…