MCP是一种开放协议,它标准化了应用程序如何向LLM提供上下文。把MCP想象成人工智能应用程序的USB-C端口。正如USB-C提供了一种将您的设备连接到各种外围设备和附件的标准化方式,MCP提供了一种将人工智能模型连接到不同数据源和工具的标准化方式。
MCP分服务器和客户端:
- 服务器提供MCP定义的功能,主要包括工具(tool)、资源(resource)、提示(prompt)和采样(sampling)。
- 客户端则充当服务器和LLM之前通信的桥梁,告知LLM有哪些MCP功能可用,调用MCP服务器提供的获取返回再提交给LLM。
## 概念
### tool 工具
工具让LLM可以通过用户提供的服务器执行操作,通过工具LLM可以和外部系统交互。
比如需要获取实时新闻,天气等,LLM是不知道这些实时数据的,就可以通过工具来获取。
### resource 资源
资源是指可以公开给LLM的数据和内容,可以是任意类型的数据。
比如:
- 文件内容
- 图像内容
- 日志文件
- 等等......
资源是用URI来标识...
发布日期:
2025-06-22
分类:
后端
浏览量:
203
有些场景,比如用户充值、注册等需要比较精确的数据时,可以在服务端通过GA提供的数据收集接口上报数据。
**1. 获取api密钥**
GA管理后台 => 管理 => 媒体和资源设置 => 数据收集和修改 => 数据流
在数据流里面选择一个项目,点进去可以看到`Measurement Protocol API 密钥`,点进去就可以管理api密钥了。
**2. POST数据**
把数据提交到`https://www.google-analytics.com/mp/collect?measurement_id=${measurement_id}&api_secret=${api_secret}`
`measurement_id`:数据流的衡量ID,在设置里面的数据流可以看到,类似`G-XXXXXXXXXX`的字符串
`api_secret`: 上一步获取的api密钥
**3. 调试**
把第二部里面的url改成`/debug/mp/collect`,提交数据有错误,会返回错误信息
**4. 文档链接**
发送事件:https:...
发布日期:
2025-04-22
分类:
后端
浏览量:
2614
GORM模型查询生成器生成的模型代码,创建数据的时候如果time.Time类型的属性未赋值,`create`将会报错:
`incorrect datetime value '0000-0-0 00:00:00' for column`
有几种方法能让GORM忽略未赋值的time字段,使用数据库默认的NULL:
- 使用`Omit`忽略指定的未赋值字段
- 模型数据类型`time.Time`改成`*time.Time`
- 把模型gorm的tag改成`gorm:"default:null"`
- 把模型数量类型改成`sql.NullTime`,新加模型赋值时需要赋值`sql.NullTime{}`...
发布日期:
2025-02-24
分类:
Go
浏览量:
4173
桌面版的Google地球没有代理设置,设置系统的全局代理经测试只有偶尔会有效,大部分时候无效,再一个全局代理也很不方便,会影响到所有流量。
本文的目的是让Google地球每次启动后都能走代理。
需要利用一个第三方软件:proxychains4,github仓库地址:https://github.com/rofl0r/proxychains-ng
## 1. 安装
```shell
sudo apt install proxychains4
```
## 2. 修改配置文件
修改配置文件`sudo vim /etc/proxychains4.conf`,找到最底部的`[ProxyList]`配置段,加上自己的代理地址,比如我的:
```shell
[ProxyList]
# add proxy here ...
socks5 127.0.0.1 1080
```
## 3. 为了方便,新加一个启动图标
在桌面添加一个`.desktop`启动图标文件。
```shell
[Desktop Entry]
Versi...
发布日期:
2025-02-14
分类:
其他
浏览量:
3582
# 互联网产品运营中常用的关键指标(英文简称及计算方法)
在互联网产品运营中,常用的关键指标(通常用英文简称表示)可以帮助团队评估产品的表现、用户行为、增长潜力和盈利能力。以下是一些常见的指标及其英文简称和计算方法:
---
## 1. 用户增长相关指标
- **DAU(Daily Active Users)**:日活跃用户数。
- **计算方法**:统计一天内登录或使用产品的独立用户数(去重)。
- **MAU(Monthly Active Users)**:月活跃用户数。
- **计算方法**:统计一个月内登录或使用产品的独立用户数(去重)。
- **DNU(Daily New Users)**:日新增用户数。
- **计算方法**:统计一天内首次使用产品的独立用户数(去重)。
- **WAU(Weekly Active Users)**:周活跃用户数。
- **计算方法**:统计一周内登录或使用产品的独立用户数(去重)。
- **CAC(Customer Acquisition Cost)**...
发布日期:
2025-01-16
分类:
其他
浏览量:
2576
v17.1.10使用方法:使用下载的文件替换掉原文件。链接:https://pan.quark.cn/s/08ea43f09c1c提取码:ifDU v17.0.131) 安装2) 用Crack目录的的文件替换原文件3) {可选} 移除注册表项 : HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPremium\Registration17X??\含原版安装包文件:链接:https://pan.quark.cn/s/c8beef0a69a4提取码:pNr1...
发布日期:
2024-08-23
分类:
其他
浏览量:
6786
快钱官方没有提供完整的SDK,仅有一些demo,要集成进现有go mod项目要花一点时间集成和测试,记录一下签名验证的关键点,支付方式是SDK网关支付和H5支付。
快钱会提供三个密钥文件:
- 商户应用私钥文件,`pfx`格式,有密码,用于签名数据。
- ssl证书,`pfx`格式,有密码,用于`https`双向认证,快钱的证书测试下来会报错,所以用`openssl`提取了证书和密钥使用,下面有写。
- 快钱公钥证书,用于加/解密和验证数据。
场景是把以上证书内容`base64`编码成字符串存数据库,提供页面UI配置。
## 1、支付下单数据签名
按照文档里面的字段顺序排序字段,拼接成查询字符串,用商户私钥加签。
```go
//SignData data 拼接的待签名字符串
func SignData(data string) (string, error) {
// merchantKey私钥
certBytes, err := base64.StdEncoding.DecodeString(merchantKey)
i...
发布日期:
2024-08-09
分类:
后端
浏览量:
6130
**知识点:**
- udp 协议是无连接的协议,发送数据前不需要先和数据接收方建立连接。
- 每个 UDP socket 都有一个接收缓冲区,没有发送缓冲区,从概念上来说就是只要有数据就发,不管对方是否可以正确接收,所以不缓冲,不需要发送缓冲区。
- 当socket 接收缓冲区满时,新来的数据报无法进入接收缓冲区,此数据报就被丢弃。UDP是没有流量控制的;快的发送者可以很容易地就淹没慢的接收者,导致接收方的 UDP 丢弃数据报。
- UDP每个数据包之间有界限,每次接收都是一个完整的数据包,即使被下层的ip协议分片传输(udp包大于ip包的最大传输单元)。
- ip分片传输,某个片丢失,那么整个udp包都会被丢弃,上层应用不知道udp包被丢弃。
## 单播
单播就是点对点通信,用于两个主机之间端对端的通信。
**服务端主要函数:**
- `net.ListenUDP`: 监听`udp`端口
- `ReadFromUDP`: 读取连接数据
- `WriteToUDP`: 写入数据
由于udp是无连接的协议,所以服务端读和写都要...
发布日期:
2024-07-31
分类:
Go
浏览量:
5081
> 原文 [Guide](https://github.com/golang/example/blob/master/slog-handler-guide/README.md)
标准库的 `log/slog` 包采用两部分设计。由 `Logger` 类型实现的“前端”收集经过结构化的日志信息(如消息、级别和属性),并将它们传递给“后端”,即 `Handler` 接口的实现。该软件包带有两个内置处理程序,通常应该足够了。但是您可能需要编写自己的处理程序,这并不总是那么简单。本指南随时为您提供帮助。
# 记录器(logger)及其处理程序(handler)
编写处理程序需要了解 `Logger` 和 `Handler` 类型如何协同工作。
每个记录器都包含一个处理程序。某些 `Logger` 方法会执行一些预备工作,例如将键值对收集到 `Attrs` 中,然后调用一个或多个 `Handler` 方法。这些 `Logger` 方法是 `With`、`WithGroup` 和输出方法。
输出方法履行记录器的主要作用:生成日志输出。下面是对输出方法的调用:
`...
发布日期:
2024-07-17
分类:
后端
浏览量:
943
在 `Node.js` 中,你可以使用多种方法对数组进行去重。以下是几种常见的方法:
- **方法一:使用 Set**
`Set` 是 `ES6` 中引入的一种数据结构,它只存储唯一的值。你可以利用它来对数组进行去重。
```js
const array = [1, 2, 3, 4, 4, 5, 5, 6];
const uniqueArray = [...new Set(array)];
console.log(uniqueArray); // [1, 2, 3, 4, 5, 6]
```
- **方法二:使用 filter 和 indexOf**
你可以使用 `filter` 方法结合 `indexOf` 来过滤掉重复的元素。
```js
const array = [1, 2, 3, 4, 4, 5, 5, 6];
const uniqueArray = array.filter((item, index) => array.indexOf(item) === index);
console.log(uniqueArray);...
发布日期:
2024-06-21
分类:
前端
浏览量:
1294