从零构建智能体重管家,基于Open-AutoGLM的完整技术路径(稀缺资料公开)

第一章:从零构建智能体重管家:背景与架构全景

随着健康意识的普及,个人体重管理逐渐成为日常生活的重要组成部分。传统的体重记录方式依赖手动记账或单一设备显示,缺乏长期趋势分析与个性化建议能力。为此,“智能体重管家”应运而生——一个集数据采集、存储、分析与可视化于一体的轻量级健康管理平台。

项目核心目标

  • 实现用户体重数据的自动化采集与安全存储
  • 提供基于时间序列的趋势分析图表
  • 支持个性化健康目标设定与进度提醒
  • 通过API接口为后续移动端扩展奠定基础

系统整体架构设计

系统采用前后端分离模式,后端基于Go语言构建RESTful API服务,前端使用Vue.js实现响应式界面。数据层选用SQLite轻量数据库,适用于个人化部署场景。
// main.go - 简化的服务启动代码
package main

import (
    "net/http"
    "github.com/gin-gonic/gin"
)

func main() {
    r := gin.Default()
    r.GET("/health", func(c *gin.Context) {
        c.JSON(http.StatusOK, gin.H{"status": "ok"}) // 健康检查接口
    })
    _ = r.Run(":8080") // 启动HTTP服务
}

技术栈概览

层级技术选型用途说明
前端Vue 3 + Element Plus构建交互式数据看板
后端Go + Gin处理API请求与业务逻辑
数据库SQLite本地化持久化存储
graph TD A[用户终端] -->|HTTPS请求| B(API网关) B --> C[认证服务] C --> D[数据服务模块] D --> E[(SQLite数据库)] B --> F[分析引擎] F --> G[生成趋势报告] G --> A

第二章:Open-AutoGLM 核心机制解析与本地部署

2.1 Open-AutoGLM 的模型架构与推理原理

Open-AutoGLM 采用分层编码-解码架构,融合自回归语言建模与图神经网络(GNN)的双重优势,实现对结构化与非结构化数据的联合建模。
核心组件构成
  • 文本编码器:基于多层 Transformer 结构,提取自然语言语义特征
  • 图推理模块:利用 GNN 捕获实体间关系,增强逻辑推理能力
  • 任务适配头:动态生成指令感知的输出分布
推理流程示例

def forward(input_text, edge_index):
    text_emb = transformer.encode(input_text)        # 文本嵌入
    graph_emb = gnn(text_emb, edge_index)            # 图传播
    output = autoregressive_head(graph_emb)          # 自回归生成
    return output
该流程首先将输入文本编码为语义向量,再通过图结构进行信息传递,最终由解码器逐 token 生成响应,支持复杂任务链式推理。

2.2 环境搭建与依赖项配置实战

在开始开发前,需确保本地环境具备必要的工具链支持。推荐使用容器化方式构建一致的开发环境。
基础环境准备
  • Docker 20.10+
  • Go 1.21+(若涉及后端服务)
  • Node.js 18+(前端项目依赖)
依赖管理配置示例
module example/api

go 1.21

require (
  github.com/gin-gonic/gin v1.9.1
  github.com/go-sql-driver/mysql v1.7.1
)
go.mod 文件定义了模块路径与最低 Go 版本,并引入 Gin 框架用于 HTTP 路由,MySQL 驱动支持数据库连接。
容器化运行环境
服务端口用途
api-server8080提供 REST 接口
mysql-db3306持久化数据存储

2.3 模型量化与轻量化部署策略

模型量化的基本原理
模型量化通过将浮点权重转换为低精度整数(如int8),显著降低计算开销与存储需求。常见方法包括对称量化与非对称量化,适用于推理阶段的性能优化。
# 示例:使用PyTorch进行动态量化
import torch
import torch.quantization

model = MyModel()
quantized_model = torch.quantization.quantize_dynamic(
    model, {torch.nn.Linear}, dtype=torch.qint8
)
上述代码对线性层执行动态量化,推理时激活值保持浮点,权重转为int8,兼顾速度与精度。
轻量化部署策略
  • 剪枝:移除冗余神经元或通道,减少参数量
  • 知识蒸馏:用大模型指导小模型训练
  • 架构搜索(NAS):自动设计高效网络结构
结合量化与剪枝可在边缘设备实现毫秒级响应,同时降低内存占用达70%以上。

2.4 API 封装与服务化接口开发

在微服务架构中,API 封装是实现服务解耦与复用的核心环节。通过统一的接口抽象,将底层业务逻辑与外部调用隔离,提升系统的可维护性与扩展性。
接口设计规范
遵循 RESTful 风格,使用语义化路径与标准 HTTP 状态码。请求与响应统一采用 JSON 格式,增强跨语言兼容性。
Go 语言示例:用户查询服务封装
func GetUserHandler(w http.ResponseWriter, r *http.Request) {
    id := r.URL.Query().Get("id")
    if id == "" {
        http.Error(w, "missing user id", http.StatusBadRequest)
        return
    }
    user, err := userService.FindByID(id)
    if err != nil {
        http.Error(w, "user not found", http.StatusNotFound)
        return
    }
    json.NewEncoder(w).Encode(user)
}
该处理函数封装了用户查询逻辑,校验参数并调用领域服务,最终返回结构化数据。错误状态清晰分离,便于前端识别处理。
服务化优势对比
特性裸接口封装后服务
可读性
复用性
维护成本

2.5 性能基准测试与响应优化

基准测试工具选型
在Go语言中,go test 提供了内置的性能基准测试支持。通过编写以 Benchmark 开头的函数,可自动化执行性能测量。
func BenchmarkHTTPHandler(b *testing.B) {
    req := httptest.NewRequest("GET", "/api/data", nil)
    w := httptest.NewRecorder()
    for i := 0; i < b.N; i++ {
        apiHandler(w, req)
    }
}
该代码块模拟高并发请求场景,b.N 由测试框架动态调整,确保测试运行足够时长以获得稳定数据。通过 go test -bench=. 执行后,可获取每操作耗时(ns/op)和内存分配情况。
响应时间优化策略
常见优化手段包括:
  • 减少内存分配:使用对象池(sync.Pool)复用临时对象
  • 启用GOMAXPROCS:充分利用多核CPU并行处理能力
  • 异步化I/O:将数据库或RPC调用非阻塞化
优化项平均延迟下降吞吐提升
连接池复用40%2.1x
缓存热点数据65%3.4x

第三章:体重数据建模与动态追踪算法设计

3.1 时序体重数据的特征工程方法

在处理时序体重数据时,特征工程是提升模型预测性能的关键步骤。原始数据通常包含每日或每周测量值,需提取具有生理意义的统计特征。
滑动窗口统计特征
通过滑动窗口计算移动均值、标准差和变化率,可捕捉体重趋势。例如:

import pandas as pd

# 假设data为按时间排序的体重序列
data['7d_mean'] = data['weight'].rolling(window=7).mean()
data['7d_std'] = data['weight'].rolling(window=7).std()
data['weight_change_rate'] = data['weight'].diff(7) / 7
上述代码生成7天移动平均与标准差,反映短期波动;变化率揭示减重/增重速度,对健康干预建模至关重要。
周期性特征构造
  • 提取星期几作为分类变量,用于识别周末效应
  • 构建月度趋势项,拟合长期变化方向
  • 加入节假日标志位,校正异常波动
这些特征共同增强模型对生理节律与行为模式的理解能力。

3.2 基于LLM的体重趋势预测逻辑实现

数据预处理与特征构建
在进行体重趋势预测前,需将用户的历史体重、饮食摄入、运动消耗等数据标准化。通过滑动窗口提取过去7天的体重序列作为输入特征,增强时间维度上的连续性感知。
模型推理流程
利用微调后的轻量级LLM对输入序列进行语义解析,输出未来3天的体重变化趋势(上升、下降或平稳)。以下是核心推理代码片段:

# 输入:history_weights: List[float],最近7天体重
def predict_trend(history_weights):
    input_tensor = torch.tensor([normalize(history_weights)]).to(device)
    with torch.no_grad():
        output = model(input_tensor)  # 输出[上升概率, 下降概率, 平稳概率]
    return decode_trend(torch.argmax(output, dim=1).item())
该函数将归一化后的体重序列送入模型,获取分类结果。输出经解码后生成自然语言趋势描述,提升可读性。
预测结果映射表
模型输出类别趋势解释建议动作
0体重上升建议加强有氧运动
1体重下降保持当前计划
2体重平稳调整饮食结构

3.3 用户个性化因素的上下文融合实践

在构建智能推荐系统时,用户个性化因素的上下文融合是提升精准度的关键环节。通过将用户历史行为、偏好设置与实时上下文(如时间、位置、设备)相结合,系统可动态调整推荐策略。
上下文特征工程
将用户静态画像(如年龄、性别)与动态行为(如点击、停留时长)进行向量拼接,形成高维上下文特征输入:

# 特征融合示例
user_profile = [age_norm, gender_onehot, region_embedding]
context_features = [hour_of_day, is_weekend, device_type]
behavior_seq = embedding_layer(click_sequence)[-10:]  # 最近10次行为

final_input = np.concatenate([user_profile, context_features, behavior_seq])
上述代码中,user_profile 表示用户基础属性,context_features 捕获环境变量,behavior_seq 提取近期行为序列嵌入。三者拼接后作为模型输入,增强个性化表达能力。
融合策略对比
  • 加权融合:为不同来源特征分配可学习权重
  • 注意力机制:动态关注关键上下文维度
  • 多任务学习:联合优化点击率与停留时长目标

第四章:智能分析功能开发与系统集成

4.1 体重异常波动自动识别模块构建

为了实现对用户体重数据的实时监控与异常预警,系统构建了体重异常波动自动识别模块。该模块通过分析连续7天的体重数据,识别出偏离正常趋势的异常波动。
数据预处理流程
原始体重数据经清洗后进行标准化处理,去除因测量时间不一致导致的偏差:
# 数据标准化示例
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
normalized_weight = scaler.fit_transform(weight_data.reshape(-1, 1))
上述代码将体重序列转换为均值为0、标准差为1的标准正态分布,便于后续阈值判断。
异常判定逻辑
采用移动平均结合标准差的方法动态设定阈值:
  • 计算5日滑动平均值
  • 设定±1.5倍标准差为正常区间
  • 超出范围则触发异常标记

4.2 多维度健康建议生成引擎开发

为实现个性化健康干预,构建多维度健康建议生成引擎成为核心模块。该引擎融合生理数据、行为习惯与环境因素,通过规则引擎与机器学习模型协同决策。
数据融合层设计
采用加权融合策略整合多源输入:
  • 实时心率、睡眠质量等来自可穿戴设备
  • 饮食记录、运动频率由用户主动上报
  • 气温、空气质量等外部API补充环境上下文
建议生成逻辑示例
func GenerateAdvice(healthData HealthProfile) string {
    if healthData.SleepDuration < 6 && healthData.StressLevel > 7 {
        return "建议今晚提前1小时入睡,并进行10分钟冥想放松。"
    }
    return "当前状态良好,保持现有作息即可。"
}
上述函数根据睡眠时长与压力值组合判断输出建议,参数阈值支持动态配置,适配不同人群特征。
输出优先级矩阵
健康维度权重触发频率
心血管0.35
心理0.30
代谢0.25

4.3 微信/APP端消息推送联动集成

在现代移动应用架构中,实现微信公众号、小程序与原生APP之间的消息联动推送是提升用户触达效率的关键环节。通过统一的消息网关,可将业务事件转化为多端适配的推送指令。
消息路由配置
使用平台标识字段区分目标终端:
  • app:调用厂商通道(如华为、小米)或 Firebase
  • wechat:接入微信模板消息或订阅通知接口
  • all:并行推送至所有可用通道
服务端推送逻辑示例

// 统一推送入口
function sendPush(message, platforms) {
  platforms.forEach(platform => {
    if (platform === 'wechat') {
      wechatService.sendTemplateMsg(message); // 调用微信模板消息
    } else if (platform === 'app') {
      pushService.notifyApp(message); // 触发APP极光推送
    }
  });
}
上述代码通过条件分支调用不同SDK,实现消息分发。参数message需包含openid/device_token等上下文信息,确保消息精准投递。

4.4 用户反馈闭环与模型持续学习机制

反馈数据采集与标注
用户交互行为(如点击、停留时长、修正输入)被实时捕获并结构化存储。系统通过标签化处理,将隐式反馈转化为可用于模型优化的训练信号。
  1. 前端埋点收集用户操作日志
  2. 后端服务解析并关联会话上下文
  3. 自动标注模块生成监督信号
增量学习流水线
模型通过定期微调实现知识更新。以下为调度脚本示例:

# 每日凌晨触发增量训练
def trigger_fine_tuning():
    new_data = load_feedback_data(days=1)
    if len(new_data) > MIN_SAMPLES:
        model.fine_tune(new_data, epochs=3)
        evaluate_and_deploy(model)
该机制确保模型每24小时吸收最新用户反馈,参数 MIN_SAMPLES 防止数据稀疏导致的过拟合。

第五章:技术总结与可复用路径展望

核心架构模式的提炼
在多个微服务项目中,基于事件驱动的异步通信模式展现出高度可复用性。通过消息队列解耦服务边界,显著提升系统弹性。以下为典型Go语言实现的消息消费者模板:

func handleMessage(ctx context.Context, msg *nats.Msg) {
    var event UserCreatedEvent
    if err := json.Unmarshal(msg.Data, &event); err != nil {
        log.Printf("invalid JSON: %v", err)
        msg.Ack() // 仍确认避免重复堆积
        return
    }

    if err := userService.Create(ctx, event); err != nil {
        log.Printf("failed to create user: %v", err)
        msg.Nak() // 重试机制触发
        return
    }
    msg.Ack()
}
跨项目标准化实践清单
  • 统一使用OpenTelemetry进行分布式追踪注入
  • 所有API网关强制启用JWT校验中间件
  • 数据库连接池配置遵循“最大连接数 = CPU核数 × 2”的经验法则
  • 日志输出结构化,字段包含trace_id、service_name、level
  • Kubernetes部署YAML纳入CI流水线校验
可观测性集成方案对比
工具日志聚合指标采集链路追踪部署复杂度
Prometheus + Loki + Tempo✅(原生)中等
Datadog Agent✅(SaaS)✅(SaaS)✅(SaaS)
ELK Stack✅(Elasticsearch)⚠️(需Metricbeat)⚠️(需Jaeger集成)
自动化治理流程嵌入
CI/CD流水线中的质量门禁: 1. 静态代码扫描(golangci-lint) → 2. 单元测试覆盖率 ≥ 80% → 3. 安全依赖检查(Trivy) → 4. Helm lint与diff预览 → 5. 金丝雀发布监控达标后全量
源码直接下载地址: https://pan.quark.cn/s/a4b39357ea24 过采样与欠采样构成了数字信号处理领域中两种基础的采样策略,它们在工程实践应用时各自展现出独特的长处与短处及适用情境。以下将深入阐释这两种采样方法的运作机制,并对它们在实际操作中的区别进行细致对比。 我们首先阐释过采样的核心概念。过采样(Oversampling)一般是指运用高于必要标准频率对模拟信号实施采样。举例而言,当信号频率为70MHz且信号带宽为20MHz时,依据奈奎斯特采样准则,理论上采样频率只需略高于40MHz(即信号带宽频率的两倍)即可达成无失真采样。然而,在现实操作中,系统构造者常常会采用超过140MSPS(每秒百万次采样)的采样速率,这通常超出理论所需。过采样的主要不利之处涵盖:提升ADC输出数据速率,引发FPGA的时序挑战;增大功耗、ADC及FPGA的制造成本。尽管存在这些不足,过采样依然具备其有利之处,例如可提供处理增益、频率规划的伸缩性以及能够处理更宽的信号带宽。 接下来,我们探讨欠采样的基本原理。欠采样(Undersampling)是指以低于理论标准频率对信号进行采样,这在处理高输入信号频率时尤为有效。例如,针对70MHz的中频(IF)信号,通过欠采样能够采用低于40MHz的采样频率进行采样,从而将数据速率降至FPGA,减少时序挑战,节省能量消耗和成本。实现欠采样的关键设计考量在于它能够在系统设计中达成所需的ADC动态性能。 欠采样的优势体现为能够简化硬件构造,比如降低对高速数据捕获的需求,并且在设计条件允许时,可选用较慢的ADC来削减成本。然而,欠采样技术也存在其局限性,例如在ADC的非理想表现可能导致非线性失真,诸如二阶(HD2)和三阶(HD3)谐...
源码链接: https://pan.quark.cn/s/3523d8c4b5d2 ### Qt5.9.1开发的应用程序转换为可安装`.exe`文件的详细流程 #### 一、概述 本资料将系统性地阐述如何将基于Qt5.9.1版本或其他Qt框架版本开发的应用程序转化为可直接安装的`.exe`安装文件。这一过程不仅适用于Qt5.9.1版本,对其他版本的Qt框架开发的应用同样适用。 #### 二、前期准备 在开展相关操作前,需确保已达成以下准备要求: 1. **开发环境配置**: 利用Qt5.9.1或其他版本完成应用程序的开发工作,并保证能够顺利编译出可执行程序。 2. **NSIS安装**: NSIS(Nullsoft Scriptable Install System)作为一个开源的Windows安装系统,能够支持创建专业的安装程序。用户可从官方渠道或可靠来源获取最新版的NSIS并进行安装。 #### 三、制作可执行程序的流程 ##### 3.1 打包应用程序文件 需要将已开发好的Qt应用程序的所有组件和资源整合到一个文件夹中,例如命名为`Qt_Video`。确保该文件夹内包含所有必要的库文件和资源文件,以便应用程序能够独立运行。 ##### 3.2 压缩文件随后,将整个`Qt_Video`文件夹压缩成`.zip`格式的文件。这一步骤可通过Windows内置的压缩工具或第三方软件完成。 ##### 3.3 创建安装文件接下来,借助NSIS将压缩文件转化为安装文件。具体操作如下: 1. **启动NSIS**: 运行NSIS软件并进入其主界面。 2. **选择基于ZIP的安装模式**: 在主界面中选取“**Installer based on ZIP file**...
内容概要:本文介绍了一种结合单像素检测与数据融合技术的千亿体素级多维荧光成像方法,并提供了完整的Matlab代码实现。该方法融合压缩感知理论与单像素成像原理,通过优化测量矩阵设计、重构算法及多维度数据融合策略,实现了在大幅降低数据采集量的前提下,完成高分辨率、高通量的三维荧光成像,特别适用于大规模生物样本的快速、高效成像需求。文中系统阐述了成像系统的建模过程、关键算法的设计思路以及重建性能的优化路径,充分展现了其在超高体素规模下的成像能力与精确重构优势。; 适合人群:面向具备信号处理、光学成像或生物医学工程等相关专业背景的研究生、科研人员及工程技术开发者,尤其适合熟悉Matlab编程并致力于先进成像技术研究与算法复现的专业人士。; 使用场景及目标:①应用于大规模生物组织的三维荧光成像,显著提升成像效率与图像质量;②为单像素成像、压缩感知与多源数据融合等前沿技术提供可复现、可扩展的算法框架;③支撑高维医学影像重建、新型显微成像系统开发及相关科研与工程实践。; 阅读建议:建议结合所提供的Matlab代码进行模块化分析,重点理解测量过程的数学建模与图像重构算法的实现细节,宜在掌握基本理论的基础上开展仿真实验与参数调优,以深入把握核心技术原理与工程实现要点。
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 Node.js 是一种开放源代码且能够在多种操作系统上运行的 JavaScript 执行环境,它使得开发人员能够在服务器端执行 JavaScript 代码。Node.js 采用了 V8 引擎,该引擎是由 Google 为 Chrome 浏览器开发的一个高性能的 JavaScript 解释器。Node.js 的 16.x 版本在其发展历程中占据着重要位置,其中包含了众多新功能以及性能上的改进。标题 "Nodejs16-x64 windows安装包" 指向的是专为 Windows 操作系统设计的 64 位版本的 Node.js 16 安装程序。在 Windows 平台上安装 Node.js 的 64 位版本对于处理大量数据或运行需要高性能的应用程序来说尤为关键,因为 64 位系统能够更有效地利用硬件资源。描述 "Nodejs-16 x64位windows 安装包" 明确了该安装程序是为 Windows 用户准备的,特别是对于那些需要运行 64 位应用程序的用户。x64 表明该版本兼容 64 位架构,意味着它能够充分利用 64 位计算机的内存和处理能力。标签 "Node Nodejs nodejs16" 提供了关于此安装包的核心信息,表明它与 Node.js 相关,并且具体指的是 v16 版本。这些标签有助于进行搜索和分类,从而方便用户找到他们所需要的特定版本。压缩包文件 "node-v16.18.0-x64.msi" 代表实际的安装文件,其中 "v16.18.0" 指示了 Node.js 的具体版本号,"x64" 再次强调了其适用于 64 位系统,而 ".msi" 后缀表明这是一...
源码链接: https://pan.quark.cn/s/3af847fbbec7 在计算机科学与编程领域中,十六进制(Hexadecimal)以及二进制(Binary)是两种关键性的数值表示方法。十六进制属于一种基于16的计数系统,它运用0至9的数字以及字母A至F(分别象征10至15的数值)来呈现数值,与此同时,二进制则是一种基于2的计数系统,仅采用0和1两个符号。掌握这两种进制之间的相互转换对于深入理解计算机内部运作机制具有决定性意义,因为计算机在底层数据的存储与处理环节通常都是以二进制的形式来进行的。将十六进制转换成二进制的过程可以通过以下几个环节得以完成: 1. **单个十六进制符号的转换**:每一个十六进制符号对应着4位二进制序列。具体而言: - 十六进制中的`0`在二进制表达为`0000` - 十六进制中的`1`在二进制表达为`0001` - 十六进制中的`2`在二进制表达为`0010` - 依此类推 - 十六进制中的`9`在二进制表达为`1001` - 十六进制中的`A`或`a`在二进制表达为`1010` - 十六进制中的`B`或`b`在二进制表达为`1011` - 十六进制中的`C`或`c`在二进制表达为`1100` - 十六进制中的`D`或`d`在二进制表达为`1101` - 十六进制中的`E`或`e`在二进制表达为`1110` - 十六进制中的`F`或`f`在二进制表达为`1111` 2. **多位十六进制符号的转换**:针对一个由多个十六进制符号组成的数值,我们可以逐个符号进行转换,并将得到的二进制序列依次拼接。例如,十六进制数`3F`转换成二进制形式为`00111111`。 3. **编程实现方法**:在编程实践过程中,众多编程语言提...
下载代码方式:https://pan.quark.cn/s/a4b39357ea24 **Vue.js 框架全面解析** Vue.js 是一种轻量级且高性能的前端JavaScript框架,因其便捷性、适应性和可扩展性而备受开发者青睐。在“nodejs+vue”的在线购物平台中,Vue.js 主要承担构建用户界面的任务,并提供数据绑定、组件化、路由管理等关键功能。 1. **数据绑定**:Vue.js 的核心优势之一是双向数据绑定,它借助 `v-model` 指令将视图与数据模型建立联系,确保视图层的变动能即时同步到数据模型,同时数据模型的变化也能实时反映在视图上。在在线购物平台中,这一特性可用于商品列表的动态展示和购物车状态的即时调整。 2. **组件化**:Vue.js 提供了功能强大的组件体系,允许开发者将用户界面拆分为独立且可复用的模块。例如,在在线购物平台中,商品展示模块、购物车功能、支付流程等均可封装为组件,从而提升代码的复用性和可维护性。 3. **指令与过滤器**:Vue.js 中的指令如 `v-if`、`v-for` 和 `v-bind` 用于控制元素的渲染方式及行为,过滤器则能对数据进行格式化处理,例如货币显示、时间格式转换等。在在线购物平台中,这些功能有助于更有效地展示商品信息并优化用户交互体验。 4. **计算属性与侦听器**:计算属性能够监测多个数据源并输出计算结果,而侦听器则能在数据变动时执行指定操作。在在线购物平台中,计算属性可用于自动计算购物车总金额,侦听器则可响应库存变动并实时更新商品状态。 5. **Vue Router 路由管理**:在单页应用(SPA)环境中,Vue Router 是不可或缺的组件,它负责管理页面间的导航和...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值