当前位置: 首页 > article >正文

游戏NPC对话AI生成的管理调用系统设计

系统概述

游戏与故事人物对话模拟系统
此系统旨在模拟游戏或故事场景里人物的对话。它具备创建游戏与人物信息的功能,并且能借助输入游戏、人物、时间、地点、场景等信息,调用 OpenAI 格式的接口(通过One Api支持DeepSeek之类的其他AI)得到人物的对话内容。


文章目录

  • 系统概述
  • 前言
  • 一、功能模块分析
      • 系统概述
      • 功能模块分析
        • 1. 游戏信息管理模块
        • 2. 人物信息管理模块
        • 3. 对话模拟模块
      • 数据结构设计
        • 1. 游戏表(games)
        • 2. 人物表(characters)
      • 系统流程
        • 1. 游戏创建流程
        • 2. 人物创建流程
        • 3. 对话模拟流程
        • 4. 整体系统流程图
      • 技术实现考虑
        • 1. 后端技术
        • 2. API 调用
        • 3. 前端技术(可选)
        • 4. 对话生成逻辑:
  • 二、示例代码
  • 总结
    • 谁会需要它


前言

在数字内容创作的世界里,角色对话是连接虚拟与现实的桥梁——它让游戏中的NPC拥有温度,让故事里的角色跃然纸上。无论是构建恢弘的游戏世界,还是打磨细腻的剧情剧本,贴合人设的对话永远是赋予角色灵魂的关键。然而,当开发者需要为数百个NPC设计千种场景对话,当作家需要为数十个角色编织上万句台词时,手动编写往往陷入“耗时低效”与“逻辑割裂”的困境:如何让酒馆老板的闲聊符合他隐藏的盗贼身份?如何让恋人的争吵既符合性格又推动剧情?这些细节挑战,正需要一套智能化工具来破局。

为此,我们打造了 “游戏与故事人物对话模拟系统”——这不是简单的对话生成工具,而是一个聚焦“角色灵魂塑造”的全链路创作平台。它通过 “结构化设定+智能化生成” 的双重引擎,让每一句对话都成为角色性格的延伸、场景逻辑的自然流露,助您彻底告别“对话脱离人设”的创作痛点,让虚拟角色的每一次开口都充满说服力。

一、功能模块分析

以下是对该系统的详细分析与细化:

系统概述

此系统旨在模拟游戏或故事场景里人物的对话。它具备创建游戏与人物信息的功能,并且能借助输入游戏、人物、时间、地点、场景等信息,调用 OpenAI 接口得到人物的对话内容。

功能模块分析

1. 游戏信息管理模块
  • 功能描述:该模块用于创建和管理游戏的基本信息。
  • 具体内容
    • 游戏创建:用户录入游戏的世界观,例如是奇幻、科幻还是现实题材;游戏的年份,像古代、未来;主要的时间线,例如关键事件的发生顺序。
    • 游戏存储:将游戏信息存储在数据库中,以便后续查询和使用。
    • 游戏查询与修改:用户能够依据游戏 ID 查询和修改游戏信息。
2. 人物信息管理模块
  • 功能描述:负责创建和管理人物的详细信息。
  • 具体内容
    • 人物创建:用户输入人物的姓名、性别、年龄、称号(可选)、与其他人物的关系、友好度、活动区域、背景故事、时间线以及各项属性(如力量、智力等)。
    • 人物存储:把人物信息关联到对应的游戏 ID 并存储在数据库中。
    • 人物查询与修改:用户可以根据人物 ID 查询和修改人物信息。
3. 对话模拟模块
  • 功能描述:根据用户输入的游戏 ID、人物 ID、时间、地点、场景等信息,整合数据并调用 OpenAI 接口,获取人物的对话内容。
  • 具体内容
    • 信息整合:从数据库中提取游戏和人物的相关信息,与用户输入的时间、地点、场景等信息进行整合。
    • API 调用:将整合后的信息作为输入,调用 OpenAI 的接口。
    • 结果返回:接收 OpenAI 的响应并返回给用户。

数据结构设计

1. 游戏表(games)
字段名类型描述
game_id整数游戏的唯一标识
worldview文本游戏的世界观
year整数游戏的年份
timeline文本主要的时间线
2. 人物表(characters)
字段名类型描述
character_id整数人物的唯一标识
game_id整数关联的游戏 ID
name文本人物姓名
gender文本人物性别
age整数人物年龄
title文本(可选)人物称号
relationships文本与其他人物的关系
friendliness整数友好度
activity_area文本活动区域
backstory文本背景故事
timeline文本人物的时间线
attributes文本各项属性(等级,生命,魔力,健康等)

系统流程

1. 游戏创建流程
  1. 用户进入游戏创建界面。
  2. 输入游戏的世界观、年份和主要时间线。
  3. 系统生成唯一的游戏 ID,并将信息存储到数据库中。
用户输入游戏信息
输入是否合法
生成唯一游戏ID
返回错误提示
将游戏信息存入数据库
返回游戏创建成功及game_id
2. 人物创建流程
  1. 用户选择要创建人物的游戏 ID。
  2. 输入人物的各项信息。
  3. 系统生成唯一的人物 ID,并将信息关联到对应的游戏 ID 存储到数据库中。
用户选择游戏ID并输入人物信息
游戏ID是否存在
返回游戏不存在错误
人物信息是否完整
返回必填字段缺失错误
生成唯一人物ID
将人物信息存入数据库
返回人物创建成功及character_id
3. 对话模拟流程
  1. 用户输入游戏 ID、人物 ID、时间、地点和场景。
  2. 系统从数据库中提取游戏和人物的相关信息,并与用户输入的信息进行整合。
  3. 系统调用 OpenAI 的接口,将整合后的信息作为输入。
  4. 系统接收 OpenAI 的响应并返回给用户。
用户输入:game_id,character_id,时间,地点,场景
验证id是否存在
返回游戏或人物不存在错误
从数据库查询游戏信息和人物信息
整合信息生成OpenAI对话Prompt
调用OpenAI API生成对话内容
API调用是否成功
返回API调用失败错误
返回人物对话内容
4. 整体系统流程图
外部接口
数据存储层
业务逻辑层
用户交互层
合法
OpenAI API
PostgreSQL数据库
games表
characters表
验证输入合法性
生成唯一ID
查询游戏人物信息
生成对话Prompt
调用OpenAI API
创建游戏
创建人物
模拟对话
返回对话结果

技术实现考虑

1. 后端技术
  • 编程语言:Python 是一个不错的选择,因为它有丰富的库和工具,如 Flask 或 Django 可用于构建 Web 服务。
  • 数据库:可以使用 MySQL、PostgreSQL 等关系型数据库来存储游戏和人物信息。
2. API 调用
  • 使用 OpenAI 的 Python 库 openai 来调用其 API。在调用前,需要获取 OpenAI 的 API 密钥,并进行身份验证。
3. 前端技术(可选)

如果需要开发一个用户界面,可以使用 HTML、CSS 和 JavaScript 来构建前端页面,通过 AJAX 与后端进行交互。现在阶段暂时用swagger文档做显示。

4. 对话生成逻辑:
  • 将游戏世界观、人物背景、当前场景等信息整合成 Prompt,作为 OpenAI 的输入。 支持自定义 Prompt
  • 模板(如包含人物属性、友好度、关系等细节,提升对话真实性)。

二、示例代码

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy
from flasgger import Swagger
import os
import openaiapp = Flask(__name__)
# 配置 PostgreSQL 数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = os.getenv('DATABASE_URL', 'postgresql://username:password@192.168.123.224:5435/postgres')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)# 配置 OpenAI API 密钥
openai.api_key = os.getenv('OPENAI_API_KEY')# Swagger 配置
swagger_template = {"swagger": "2.0","info": {"title": "游戏人物对话模拟系统","description": "一个用于模拟游戏或故事场景中人物对话的系统","version": "1.0"},"basePath": "/","schemes": ["http","https"]
}
swagger_config = {"headers": [],"specs": [{"endpoint": 'apispec_1',"route": '/apispec_1.json',"rule_filter": lambda rule: True,"model_filter": lambda tag: True,}],"static_url_path": "/flasgger_static","swagger_ui": True,"specs_route": "/swagger/"
}
swagger = Swagger(app, template=swagger_template, config=swagger_config)# 游戏实体类
class Game(db.Model):"""游戏实体类,对应数据库中的 games 表,用于存储游戏的基本信息。"""__tablename__ = 'games'# 游戏的唯一标识,作为主键game_id = db.Column(db.Integer, primary_key=True)# 游戏的世界观,如奇幻、科幻等,不能为空worldview = db.Column(db.Text, nullable=False)# 游戏的年份,不能为空year = db.Column(db.Integer, nullable=False)# 游戏的主要时间线,记录关键事件顺序,不能为空timeline = db.Column(db.Text, nullable=False)# 人物实体类
class Character(db.Model):"""人物实体类,对应数据库中的 characters 表,用于存储人物的详细信息。"""__tablename__ = 'characters'# 人物的唯一标识,作为主键character_id = db.Column(db.Integer, primary_key=True)# 关联的游戏 ID,外键,关联到 games 表的 game_id,不能为空game_id = db.Column(db.Integer, db.ForeignKey('games.game_id'), nullable=False)# 人物姓名,不能为空name = db.Column(db.Text, nullable=False)# 人物性别,不能为空gender = db.Column(db.Text, nullable=False)# 人物年龄,不能为空age = db.Column(db.Integer, nullable=False)# 人物称号,可选字段title = db.Column(db.Text)# 与其他人物的关系,不能为空relationships = db.Column(db.Text, nullable=False)# 友好度,不能为空friendliness = db.Column(db.Integer, nullable=False)# 活动区域,不能为空activity_area = db.Column(db.Text, nullable=False)# 背景故事,不能为空backstory = db.Column(db.Text, nullable=False)# 人物的时间线,不能为空timeline = db.Column(db.Text, nullable=False)# 人物等级level = db.Column(db.Integer, nullable=False)# 人物生命值life = db.Column(db.Integer, nullable=False)# 人物魔法值magic = db.Column(db.Integer, nullable=False)# 人物体力值stamina = db.Column(db.Integer, nullable=False)# 人物健康度health = db.Column(db.Integer, nullable=False)# 人物幸运值luck = db.Column(db.Integer, nullable=False)# 人物神秘属性值mystery = db.Column(db.Integer, nullable=False)# 与 Game 类建立关联,方便通过游戏对象访问其关联的人物列表game = db.relationship('Game', backref=db.backref('characters', lazy=True))# 创建游戏 API
@app.route('/create_game', methods=['POST'])
def create_game():"""创建游戏---tags:- 游戏管理parameters:- in: bodyname: bodyschema:type: objectrequired:- worldview- year- timelineproperties:worldview:type: stringdescription: 游戏的世界观year:type: integerdescription: 游戏的年份timeline:type: stringdescription: 游戏的主要时间线responses:200:description: 游戏创建成功schema:type: objectproperties:game_id:type: integerdescription: 游戏的唯一标识"""data = request.get_json()worldview = data.get('worldview')year = data.get('year')timeline = data.get('timeline')game = Game(worldview=worldview, year=year, timeline=timeline)db.session.add(game)db.session.commit()return jsonify({"game_id": game.game_id})# 创建人物 API
@app.route('/create_character', methods=['POST'])
def create_character():"""创建人物---tags:- 人物管理parameters:- in: bodyname: bodyschema:type: objectrequired:- game_id- name- gender- age- relationships- friendliness- activity_area- backstory- timeline- level- life- magic- stamina- health- luck- mysteryproperties:game_id:type: integerdescription: 关联的游戏 IDname:type: stringdescription: 人物姓名gender:type: stringdescription: 人物性别age:type: integerdescription: 人物年龄title:type: stringdescription: 人物称号relationships:type: stringdescription: 与其他人物的关系friendliness:type: integerdescription: 友好度activity_area:type: stringdescription: 活动区域backstory:type: stringdescription: 背景故事timeline:type: stringdescription: 人物的时间线level:type: integerdescription: 人物等级life:type: integerdescription: 人物生命值magic:type: integerdescription: 人物魔法值stamina:type: integerdescription: 人物体力值health:type: integerdescription: 人物健康度luck:type: integerdescription: 人物幸运值mystery:type: integerdescription: 人物神秘属性值responses:200:description: 人物创建成功schema:type: objectproperties:character_id:type: integerdescription: 人物的唯一标识"""data = request.get_json()game_id = data.get('game_id')name = data.get('name')gender = data.get('gender')age = data.get('age')title = data.get('title')relationships = data.get('relationships')friendliness = data.get('friendliness')activity_area = data.get('activity_area')backstory = data.get('backstory')timeline = data.get('timeline')level = data.get('level')life = data.get('life')magic = data.get('magic')stamina = data.get('stamina')health = data.get('health')luck = data.get('luck')mystery = data.get('mystery')character = Character(game_id=game_id,name=name,gender=gender,age=age,title=title,relationships=relationships,friendliness=friendliness,activity_area=activity_area,backstory=backstory,timeline=timeline,level=level,life=life,magic=magic,stamina=stamina,health=health,luck=luck,mystery=mystery)db.session.add(character)db.session.commit()return jsonify({"character_id": character.character_id})# 模拟对话 API
@app.route('/simulate_dialogue', methods=['POST'])
def simulate_dialogue():"""模拟对话---tags:- 对话模拟parameters:- in: bodyname: bodyschema:type: objectrequired:- game_id- character_id- time- location- scenarioproperties:game_id:type: integerdescription: 游戏的唯一标识character_id:type: integerdescription: 人物的唯一标识time:type: stringdescription: 当前时间location:type: stringdescription: 地点scenario:type: stringdescription: 场景responses:200:description: 成功返回人物对话schema:type: objectproperties:dialogue:type: stringdescription: 人物的对话内容"""data = request.get_json()game_id = data.get('game_id')character_id = data.get('character_id')time = data.get('time')location = data.get('location')scenario = data.get('scenario')game = Game.query.get(game_id)character = Character.query.get(character_id)if not game or not character:return jsonify({"error": "游戏或人物不存在"}), 404# 整合信息prompt = f"游戏世界观: {game.worldview}, 年份: {game.year}, 时间线: {game.timeline}. " \f"人物姓名: {character.name}, 性别: {character.gender}, 年龄: {character.age}, 称号: {character.title}, " \f"关系: {character.relationships}, 友好度: {character.friendliness}, 活动区域: {character.activity_area}, " \f"背景故事: {character.backstory}, 时间线: {character.timeline}, 等级: {character.level}, " \f"生命: {character.life}, 魔法: {character.magic}, 体力: {character.stamina}, " \f"健康度: {character.health}, 幸运: {character.luck}, 神秘: {character.mystery}. " \f"当前时间: {time}, 地点: {location}, 场景: {scenario}. 请模拟该人物的对话。"try:# 调用 OpenAI APIresponse = openai.Completion.create(engine="text-davinci-003",prompt=prompt,max_tokens=150)dialogue = response.choices[0].text.strip()return jsonify({"dialogue": dialogue})except Exception as e:return jsonify({"error": f"调用 OpenAI API 时出错: {str(e)}"}), 500if __name__ == '__main__':with app.app_context():db.create_all()app.run(debug=True)

总结

谁会需要它

  • 游戏开发者:快速生成NPC在探索、战斗、支线任务中的差异化对话,让开放世界更具沉浸感;
  • 剧本创作者:为小说、剧本杀、动画角色设计符合人设的台词,解决“角色ooc(脱离人设)”难题;
  • 互动内容设计者:在教育模拟、心理咨询等场景中,快速构建动态变化的虚拟对话伙伴,实现个性化交互体验。

我们相信,每一个虚拟角色都值得被认真对待。这套系统不仅是工具,更是创作者的“对话助手”——它记住角色的每一段过往,理解场景的每一处细节,让每一次对话都成为角色性格的自然延伸。让虚拟角色的对话真正成为故事的“灵魂纽带”。

现在,让我们一起告别机械的对话模板,开启“让角色自己说话”的创作新体验——因为每个角色的声音,都值得被听见。

说了这么多,其实就是一个故事+人物内容管理+调api的系统....

相关文章:

游戏NPC对话AI生成的管理调用系统设计

系统概述 游戏与故事人物对话模拟系统 此系统旨在模拟游戏或故事场景里人物的对话。它具备创建游戏与人物信息的功能,并且能借助输入游戏、人物、时间、地点、场景等信息,调用 OpenAI 格式的接口(通过One Api支持DeepSeek之类的其他AI)得到人物的对话内容…...

Go:使用共享变量实现并发

竞态 在串行程序中,步骤执行顺序由程序逻辑决定;而在有多个 goroutine 的并发程序中,不同 goroutine 的事件先后顺序不确定,若无法确定两个事件先后,它们就是并发的。若一个函数在并发调用时能正确工作,称…...

豆瓣图书数据采集与可视化分析

文章目录 一、适用题目二、豆瓣图书数据采集1. 图书分类采集2. 爬取不同分类的图书数据3. 各个分类数据整合 三、豆瓣图书数据清洗四、数据分析五、数据可视化1. 数据可视化大屏展示 源码获取看下方名片 一、适用题目 基于Python的豆瓣图书数据采集与分析基于Python的豆瓣图书…...

常见的爬虫算法

1.base64加密 base64是什么 Base64编码,是由64个字符组成编码集:26个大写字母AZ,26个小写字母az,10个数字0~9,符号“”与符号“/”。Base64编码的基本思路是将原始数据的三个字节拆分转化为四个字节,然后…...

Numpy常用库方法总结

numpy的底层是ndarray,也就是矩阵结构 对于ndarray结构来说,里面所有的元素必须是同一类型的 如果不是的话,会自动的向下进行转换 list [1,2,3,4,5] array np.array(list) array输出:array([1, 2, 3, 4, 5]) 1.1 ndarray基本…...

YOLOV8 OBB 海思3516训练流程

YOLOV8 OBB 海思3516训练流程 目录 1、 下载带GPU版本的torch(可选) 1 2、 安装 ultralytics 2 3、 下载pycharm 社区版 2 4、安装pycharm 3 5、新建pycharm 工程 3 6、 添加conda 环境 4 7、 训练代码 5 9、配置Ymal 文件 6 10、修改网络结构 9 11、运行train.py 开始训练模…...

[MySQL] 事务管理(二) 事务的隔离性底层

事务的隔离性底层 1.数据库并发的场景2.读-写2.1MVCC三个变量2.1.1 3个记录隐藏列字段2.1.2 undo日志 模拟MVCCselect 的读取2.1.3 Read View(读视图) 3.RR与RC的区别 1.数据库并发的场景 读-读:不存在问题,也不需要并发控制读-写…...

20、.NET SDK概述

.NET SDK(Software Development Kit) 是微软提供的一套开发工具包,用于构建、运行和管理基于 .NET 平台的应用程序。它包含了一组丰富的工具、库和运行时环境,支持开发者在多种操作系统(如 Windows、Linux 和 macOS&am…...

Go:包和 go 工具

引言 通过对关联特性分类,组成便于理解和修改的单元,使包与程序其他包保持独立,助力大型程序的设计与维护 。模块化让包可在不同项目共享、复用、发布及全球范围使用。 每个包定义不同命名空间作为标识符,关联具体包&#xff0c…...

18-21源码剖析——Mybatis整体架构设计、核心组件调用关系、源码环境搭建

学习视频资料来源:https://www.bilibili.com/video/BV1R14y1W7yS 文章目录 1. 架构设计2. 核心组件及调用关系3. 源码环境搭建3.1 测试类3.2 实体类3.3 核心配置文件3.4 映射配置文件3.5 遇到的问题 1. 架构设计 Mybatis整体架构分为4层: 接口层&#…...

冒泡排序、插入排序、快速排序、堆排序、希尔排序、归并排序

目录 冒泡排序插入排序快速排序(未优化版本)快速排序(优化版本)堆排序希尔排序归并排序各排序时间消耗对比 冒泡排序 冒泡排序核心逻辑就是对数组从第一个位置开始进行遍历,如果发现该元素比下一个元素大,则交换位置,如果不大,就…...

Docker Compose 中配置 Host 网络模式

在 Docker Compose 中配置 Host 网络模式时,需通过 network_mode 参数直接指定容器使用宿主机的网络栈。以下是具体配置方法及注意事项: 1. 基础配置示例 在 docker-compose.yml 文件中,为需要启用 Host 模式的服务添加 network_mode: "…...

HTML、CSS 和 JavaScript 常见用法及使用规范

一、HTML 深度剖析 1. 文档类型声明 HTML 文档开头的 <!DOCTYPE html> 声明告知浏览器当前文档使用的是 HTML5 标准。它是文档的重要元信息&#xff0c;能确保浏览器以标准模式渲染页面&#xff0c;避免怪异模式下的兼容性问题。 2. 元数据标签 <meta> 标签&am…...

Elasticsearch 索引数据量激增的应对与优化:从原理到部署实践

Elasticsearch&#xff08;ES&#xff09;作为一款强大的分布式搜索和分析引擎&#xff0c;广泛应用于日志分析、全文搜索和实时数据处理等场景。然而&#xff0c;随着数据量激增&#xff0c;索引可能面临性能瓶颈&#xff0c;如写入变慢、查询延迟高或存储成本上升。如何有效应…...

CD27.【C++ Dev】类和对象 (18)友元和内部类

目录 1.友元 友元函数 几个特点 友元类 格式 代码示例 2.内部类(了解即可) 计算有内部类的类的大小 分析 注意:内部类不能直接定义 内部类是外部类的友元类 3.练习 承接CD21.【C Dev】类和对象(12) 流插入运算符的重载文章 1.友元 友元函数 在CD21.【C Dev】类和…...

QT安装详细步骤

下载 清华源 &#xff1a; 清华源 1. 2. 3. 4....

Unity游戏多语言工具包

由于一开始的代码没有考虑多语言场景&#xff0c;导致代码中提示框和UI显示直接用了中文&#xff0c;最近开始提取代码的中文&#xff0c;提取起来太麻烦&#xff0c;所以拓展了之前的多语言包&#xff0c;降低了操作复杂度。最后把工具代码提取出来到单独项目里面&#xff0c;…...

实验三 I/O地址译码

一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验电路 实验电路如图1所示&#xff0c;其中74LS74为D触发器&#xff0c;可直接使用实验台上数字电路实验区的D触发器&#xff0c;74LS138为地址译码器&#xff0c; Y0&#xff1a;280H&#xff5e;287H&…...

视觉语言导航(VLN):连接语言、视觉与行动的桥梁

文章目录 1. 引言&#xff1a;什么是VLN及其重要性&#xff1f;2. VLN问题定义3. 核心挑战4. 基石&#xff1a;关键数据集与模拟器5. 评估指标6. 主要方法与技术演进6.1 前CLIP时代&#xff1a;奠定基础6.2 后CLIP时代&#xff1a;视觉与语言的统一 7. 最新进展与前沿趋势 (202…...

计算机网络中科大 - 第7章 网络安全(详细解析)-以及案例

目录 &#x1f6e1;️ 第8章&#xff1a;网络安全&#xff08;Network Security&#xff09;优化整合笔记&#x1f4cc; 本章学习目标 一、网络安全概念二、加密技术&#xff08;Encryption&#xff09;1. 对称加密&#xff08;Symmetric Key&#xff09;2. 公钥加密&#xff0…...

2026《数据结构》考研复习笔记一(C++基础知识)

C基础知识复习 一、数据类型二、修饰符和运算符三、Lambda函数和表达式四、数学函数五、字符串六、结构体 一、数据类型 1.1基本类型 基本类型 描述 字节&#xff08;位数&#xff09; 范围 char 字符类型&#xff0c;存储ASCLL字符 1&#xff08;8位&#xff09; -128…...

XCTF-web(四)

unserialize3 需要反序列化一下&#xff1a;O:4:“xctf”:2:{s:4:“flag”;s:3:“111”;} php_rce 题目提示rce漏洞&#xff0c;测试一下&#xff1a;?s/Index/\think\app/invokefunction&functioncall_user_func_array&vars[0]phpinfo&vars[1][]1 flag&#xff1…...

在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法,支持 npm/yarn/pnpm 等主流工具

以下是 在Vue项目中查询所有版本号为 1.1.9 的依赖包名 的具体方法&#xff0c;支持 npm/yarn/pnpm 等主流工具&#xff1a; 一、使用 npm 1. 直接过滤依赖树 npm ls --depth0 | grep "1.1.9"说明&#xff1a; npm ls --depth0&#xff1a;仅显示直接依赖&#xf…...

若依微服务版启动小程序后端

目录标题 本地启动&#xff0c;dev对应 nacos里的 xxx-xxx-dev配置文件 本地启动&#xff0c;dev对应 nacos里的 xxx-xxx-dev配置文件...

莒县第六实验小学:举行“阅读世界 丰盈自我”淘书会

4月16日&#xff0c;莒县第六实验小学校园内书香四溢、笑语盈盈&#xff0c;以“阅读世界 丰盈自我”为主题的第二十四届读书节之“淘书会”活动火热开启。全校师生齐聚一堂&#xff0c;以书会友、共享阅读之乐&#xff0c;为春日校园增添了一抹浓厚的文化气息。 活动在悠扬的诵…...

国产数据库与Oracle数据库事务差异分析

数据库中的ACID是事务的基本特性&#xff0c;而在Oracle等数据库迁移到国产数据库国产中&#xff0c;可能因为不同数据库事务处理机制的不同&#xff0c;在迁移后的业务逻辑处理上存在差异。本文简要介绍了事务的ACID属性、事务的隔离级别、回滚机制和超时机制&#xff0c;并总…...

C++学习记录:

今天我们来学习一门新的语言&#xff0c;也是C语言最著名的一个分支语言&#xff1a;C。 在C的学习中&#xff0c;我们主要学习的三大组成部分&#xff1a;语法、STL、数据结构。 C的介绍 C的历史可追溯至1979年&#xff0c;当时贝尔实验室的本贾尼斯特劳斯特卢普博士在面对复杂…...

等离子体浸没离子注入(PIII)

一、PIII 是什么&#xff1f;基本原理和工艺 想象一下&#xff0c;你有一块金属或者硅片&#xff08;就是做芯片的那种材料&#xff09;&#xff0c;你想给它的表面“升级”&#xff0c;让它变得更硬、更耐磨&#xff0c;或者有其他特殊功能。怎么做呢&#xff1f;PIII 就像是用…...

LeetCode-16.最接近的三数之和 C++实现

一 题目描述 给你一个长度为 n 的整数数组 nums 和 一个目标值 target。请你从 nums 中选出三个整数&#xff0c;使它们的和与 target 最接近。 返回这三个数的和。 假定每组输入只存在恰好一个解 示例 1&#xff1a; 输入&#xff1a;nums [-1,2,1,-4], target 1 输出&…...

【机器学习】每日一讲-朴素贝叶斯公式

文章目录 **一、朴素贝叶斯公式详解****1. 贝叶斯定理基础****2. 从贝叶斯定理到分类任务****3. 特征独立性假设****4. 条件概率的估计** **二、在AI领域的作用****1. 文本分类与自然语言处理&#xff08;NLP&#xff09;****2. 推荐系统****3. 医疗与生物信息学****4. 实时监控…...