Skip to content

Commit

Permalink
docs: eval network graph
Browse files Browse the repository at this point in the history
  • Loading branch information
yvonneyx committed Nov 20, 2024
1 parent ff8bca1 commit 8cf0e54
Show file tree
Hide file tree
Showing 3 changed files with 229 additions and 0 deletions.
66 changes: 66 additions & 0 deletions evaluations/prompts/network-graph/data2chart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## 角色

你是一个 mock 图表数据生成器,生成网络图相关的可视化问答对数据。

## 任务

1. 结合可视化场景,随机生成网络图相关的可视化数据,主要内容为可视化的数据和用什么可视化图表,比如: “用网络图来可视化我的数据 `[["哈利·波特", "朋友", "赫敏·格兰杰"], ["哈利·波特", "朋友", "罗恩·韦斯莱"], ["哈利·波特", "敌人", "伏地魔"], ["伏地魔", "试图杀死", "哈利·波特"]]`。”
2. 根据可视化相关问题,生成网络图图表的配置
3. 以 JSON 格式归纳为一条问答对数据,{"question": <可视化问题>,"answer": <图表的配置>}

## 网络图图表知识库

### 图表 Spec

```json
{
"type": "network-graph",
"data": {
"nodes": [{ "name": "node1" }, { "name": "node2" }],
"edges": [{ "source": "node1", "target": "node2", "name": "edge1" }]
}
}
```

### 数据要求

- type:图表的类型,必填,文本类型,值必须为 "network-graph"。
- data:图表的数据,必填,对象类型,包含以下字段:
- nodes:网络图中的节点数组,每个节点表示一个实体,必填,数组对象类型;
- name:节点的名称,必须唯一,用于标识节点,必填,文本类型;
- edges:网络图中的边数组,每条边表示两个节点之间的关系,必填,数组对象类型;
- source:边的起始节点名称,指向节点的 `name` 属性,必填,文本类型;
- target:边的目标节点名称,指向节点的 `name` 属性,必填,文本类型;
- name:边的名称,用于标识边,必填,文本类型;

## 参考例子

```json
[
{
"type": "data2chart",
"question": "用网络图来可视化我的数据 `[[\"哈利·波特\", \"朋友\", \"赫敏·格兰杰\"], [\"哈利·波特\", \"朋友\", \"罗恩·韦斯莱\"], [\"哈利·波特\", \"敌人\", \"伏地魔\"], [\"伏地魔\", \"试图杀死\", \"哈利·波特\"]]`。",
"answer": {
"type": "network-graph",
"data": {
"nodes": [
{ "name": "哈利·波特" },
{ "name": "赫敏·格兰杰" },
{ "name": "罗恩·韦斯莱" },
{ "name": "伏地魔" }
],
"edges": [
{ "source": "哈利·波特", "target": "赫敏·格兰杰", "name": "朋友" },
{ "source": "哈利·波特", "target": "罗恩·韦斯莱", "name": "朋友" },
{ "source": "哈利·波特", "target": "伏地魔", "name": "敌人" },
{ "source": "伏地魔", "target": "哈利·波特", "name": "试图杀死" }
]
}
}
}
]
```

## 要求

- 请生成 10 条这样的记录,并以 JSON 格式输出。
66 changes: 66 additions & 0 deletions evaluations/prompts/network-graph/text2chart.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
## 角色

你是一个 mock 图表数据生成器,生成网络图相关的可视化问答对数据。

## 任务

1. 随机结合可视化场景,生成网络图相关的可视化问题,用自然语言纯文本描述,主要内容为数据描述和用什么可视化图表,比如: “在《哈利波特》系列中,有几个主要人物:哈利·波特、赫敏·格兰杰、罗恩·韦斯莱和伏地魔。哈利·波特是主角,他的两个最好的朋友是赫敏·格兰杰和罗恩·韦斯莱。伏地魔是哈利·波特的主要敌人,曾试图杀死哈利。用网络图可视化。”
2. 根据可视化相关问题,生成网络图图表的配置
3. 以 JSON 格式归纳为一条问答对数据,{"question": <可视化问题>,"answer": <图表的配置>}

## 网络图图表知识库

### 图表 Spec

```json
{
"type": "network-graph",
"data": {
"nodes": [{ "name": "node1" }, { "name": "node2" }],
"edges": [{ "source": "node1", "target": "node2", "name": "edge1" }]
}
}
```

### 数据要求

- type:图表的类型,必填,文本类型,值必须为 "network-graph"。
- data:图表的数据,必填,对象类型,包含以下字段:
- nodes:网络图中的节点数组,每个节点表示一个实体,必填,数组对象类型;
- name:节点的名称,必须唯一,用于标识节点,必填,文本类型;
- edges:网络图中的边数组,每条边表示两个节点之间的关系,必填,数组对象类型;
- source:边的起始节点名称,指向节点的 `name` 属性,必填,文本类型;
- target:边的目标节点名称,指向节点的 `name` 属性,必填,文本类型;
- name:边的名称,用于标识边,必填,文本类型;

## 参考例子

```json
[
{
"type": "text2chart",
"question": "在《哈利波特》系列中,有几个主要人物:哈利·波特、赫敏·格兰杰、罗恩·韦斯莱和伏地魔。哈利·波特是主角,他的两个最好的朋友是赫敏·格兰杰和罗恩·韦斯莱。伏地魔是哈利·波特的主要敌人,曾试图杀死哈利。用网络图可视化。",
"answer": {
"type": "network-graph",
"data": {
"nodes": [
{ "name": "哈利·波特" },
{ "name": "赫敏·格兰杰" },
{ "name": "罗恩·韦斯莱" },
{ "name": "伏地魔" }
],
"edges": [
{ "source": "哈利·波特", "target": "赫敏·格兰杰", "name": "朋友" },
{ "source": "哈利·波特", "target": "罗恩·韦斯莱", "name": "朋友" },
{ "source": "哈利·波特", "target": "伏地魔", "name": "敌人" },
{ "source": "伏地魔", "target": "哈利·波特", "name": "试图杀死" }
]
}
}
}
]
```

## 要求

- 请生成 10 条这样的记录,并以 JSON 格式输出。
97 changes: 97 additions & 0 deletions knowledges/网络图 - Network Graph.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
## 图表属性

- 名称:网络图
- 别名:关系网络图,关系图,力导向图,Force 图,英文名 Network Graph、Force Graph
- 形状:网络形
- 图表类别:关系图
- 图表功能:关系类

## 基础概念

网络图(Network Graph)是一种展示实体(节点)之间的关系(边)的图。通过节点和边的连接,直观地表示复杂的网络结构。每个节点代表一个实体,而每条边则表示两个节点之间的关系或连接。

网络图的关键就是展示“谁跟谁有联系”。比如,节点代表人,连线代表某两个人之间是否认识。

## 适用场景

- 适用于展示实体之间的关系,例如社交网络中的人际关系。当文本中涉及多个实体(如人物、事件等)以及它们之间的关联时,并且关注这些复杂的关系。
- 分析复杂网络结构中的模式和特性,例如通信网络中的节点连接情况。
- 展示数据之间的关联性和依赖关系,例如知识图谱中的概念关联。

## 不适用场景

- 线性流程:需要展示线性流程或步骤的场景,用操作步骤或时间轴更合适。
- 独立数据点:数据点之间没有明显关系或连接,用散点图更为合适。
- 层次结构:需要展示层次结构的场景,用组织结构图或思维导图更合适。
- 连续叙事:当具有明确的顺序关系或变化趋势时,用折线图或面积图更为适合。

## 图表用法

### 图表属性

```typescript
type NetworkGraph = {
type: 'network-graph';
data: {
nodes: { name: string }[];
edges: { source: string; target: string; name: string }[];
};
};
```

### 数据要求

- type:图表的类型,必填,文本类型,值必须为 "network-graph"。
- data:图表的数据,必填,对象类型,包含以下字段:
- nodes:网络图中的节点数组,每个节点表示一个实体,必填,数组对象类型;
- name:节点的名称,必须唯一,用于标识节点,必填,文本类型;
- edges:网络图中的边数组,每条边表示两个节点之间的关系,必填,数组对象类型;
- source:边的起始节点名称,指向节点的 `name` 属性,必填,文本类型;
- target:边的目标节点名称,指向节点的 `name` 属性,必填,文本类型;
- name:边的名称,用于标识边,必填,文本类型;

## 使用示例

1. 在《哈利波特》系列中,有几个主要人物:哈利·波特、赫敏·格兰杰、罗恩·韦斯莱和伏地魔。哈利·波特是主角,他的两个最好的朋友是赫敏·格兰杰和罗恩·韦斯莱。伏地魔是哈利·波特的主要敌人,曾试图杀死哈利。用网络图可视化。

```json
{
"type": "network-graph",
"data": {
"nodes": [
{ "name": "哈利·波特" },
{ "name": "赫敏·格兰杰" },
{ "name": "罗恩·韦斯莱" },
{ "name": "伏地魔" }
],
"edges": [
{ "source": "哈利·波特", "target": "赫敏·格兰杰", "name": "朋友" },
{ "source": "哈利·波特", "target": "罗恩·韦斯莱", "name": "朋友" },
{ "source": "哈利·波特", "target": "伏地魔", "name": "敌人" },
{ "source": "伏地魔", "target": "哈利·波特", "name": "试图杀死" }
]
}
}
```

2. 用网络图来可视化我的数据 `[["哈利·波特", "朋友", "赫敏·格兰杰"], ["哈利·波特", "朋友", "罗恩·韦斯莱"], ["哈利·波特", "敌人", "伏地魔"], ["伏地魔", "试图杀死", "哈利·波特"]]`

```json
{
"type": "network-graph",
"data": {
"nodes": [
{ "name": "哈利·波特" },
{ "name": "赫敏·格兰杰" },
{ "name": "罗恩·韦斯莱" },
{ "name": "伏地魔" }
],
"edges": [
{ "source": "哈利·波特", "target": "赫敏·格兰杰", "name": "朋友" },
{ "source": "哈利·波特", "target": "罗恩·韦斯莱", "name": "朋友" },
{ "source": "哈利·波特", "target": "伏地魔", "name": "敌人" },
{ "source": "伏地魔", "target": "哈利·波特", "name": "试图杀死" }
]
}
}
```

0 comments on commit 8cf0e54

Please sign in to comment.