GraphRAG

GraphRAG

GraphRAG 项目是一个数据管道和转换套件,旨在利用大型语言模型(LLMs)的力量从非结构化文本中提取有意义的结构化数据。

若要了解更多关于 GraphRAG 以及它如何用于增强您的大型语言模型(LLMs)对您的私有数据进行推理的能力,请访问 Microsoft Research Blog Post

Get Started

构建虚拟环境

cd /Users/junjian/GitHub/microsoft/graphrag

python -m venv env
source env/bin/activate

安装 GraphRAG

pip install graphrag

准备数据 mkdir -p ./ragtest/input curl https://www.gutenberg.

TypeScript 入门

TypeScript 安装

安装 tsc,它是 TypeScript 的编译器。

npm i -g typescript

查看版本

tsc -v
Version 5.5.3

安装 ts-node,它是 TypeScript 的运行时。

npm i -g ts-node

查看版本

ts-node -v
v10.9.2

Hello World

使用 tsc --init 命令快速创建一个 tsconfig.json 文件。

tsc --init

Created a new tsconfig.json with:                                                                                       
                                                                                                                     TS 
  target: es2016
  module: commonjs
  strict: true
  esModuleInterop: true
  skipLibCheck: true
  forceConsistentCasingInFileNames: true


You can learn more at https://aka.ms/tsconfig

创建一个 hello.ts 文件。

function hello(name: string) {
  console.log(`Hello, ${name}!`);
}

hello("TypeScript");

使用 tsc 命令编译 hello.ts 文件。

tsc hello.ts

编译后生成一个 hello.js 文件。

Continue 源码分析

Continue

VS Code Extension

通过配置创建新的 Extension,用于区别于 Continue 。

{
  "name": "continue",
  "icon": "media/icon.png",
  "version": "0.9.218",
  "displayName": "LNSoft Continue",
  "description": "The leading open-source AI code assistant",
  "publisher": "LNSoft Continue"
}

入口

VS Code 扩展的起点是 activate.tsactivateExtension 这里的函数将注册所有命令,并将 Continue GUI 作为 webview 加载到 IDE 的侧边栏中。

配置

目录:extensions/vscode

package.json

package.json 由开发者手动创建和维护,主要用于定义项目的配置信息。

Visual Studio Code 快捷键

快捷键

常用
显示所有命令 F1, ⇧ ⌘ P
全屏 ⌃ ⌘ F
设置 ⌘ ,
键盘快捷方式 ⌘ K ⌘ S
导航
转到文件 ⌘ P
转到工作区中的符号 ⌘ T
聚焦并选择痕迹导航 ⇧ ⌘ .
转到编辑器中的符号 ⇧ ⌘ O
转到行 ⌃ G
转到括号 ⇧ ⌘ \
转到定义 F12
转到引用 ⇧ F12
后退 ⌃ -
前进 ⌃ ⇧ -
显示
切换主侧栏可见性 ⌘ B
切换辅助侧栏可见性 ⌥ ⌘ B
切换面板可见性 ⌘ J
切换终端可见性 ⌃ `
查看资源管理器 ⇧ ⌘ E
查看搜索 ⇧ ⌘ F
查看调试 ⇧ ⌘ D
查看 GitHub Copilot 聊天 ⇧ ⌘ Space
编辑器
切分编辑器 ⌘ \
关闭编辑器 ⌘ W
选择单词 ⌘ D
选择所有的查找匹配项 ⇧ ⌘ L

键盘参考表

Qdrant

Qdrant

用于下一代人工智能应用的向量搜索引擎

Qdrant(读作:quadrant)是一个向量相似性搜索引擎和向量数据库。它提供了一个生产就绪的服务,具有方便的 API 来存储、搜索和管理点 - 具有附加有效载荷的向量。Qdrant 专为扩展的过滤支持量身定制。它对所有类型的神经网络或基于语义的匹配、分面搜索和其他应用非常有用。

解决方案

运行

Qdrant 镜像

docker pull qdrant/qdrant

启动 Qdrant 服务

docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant

Qdrant 现在可访问:

安装 Qdrant Client

pip install qdrant-client

代码示例

FastEmbed

FastEmbed

FastEmbed 是一个轻量级、快速的 Python 库,专为嵌入生成而构建。

安装

pip install -Uqq fastembed

支持的嵌入模型

import pandas as pd

from fastembed import TextEmbedding


supported_models = (
    pd.DataFrame(TextEmbedding.list_supported_models())
    .sort_values("size_in_GB")
    .drop(columns=["sources", "model_file", "additional_files"])
    .reset_index(drop=True)
)

print(supported_models)

Vanna.AI

Vanna 工作原理

使用检索增强来帮助您使用 LLM 为数据库生成准确的 SQL 查询。

Vanna 的工作过程分为两个简单步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,这些问题将返回 SQL 查询,这些查询可以设置为在您的数据库上自动运行。

  • vn.train(...)

在您的数据上训练 RAG“模型”。这些方法将添加到参考语料库。

  • vn.ask(...)

问问题。这将使用参考语料库生成可以在您的数据库上运行的 SQL 查询。

例子

与您的 SQL 数据库聊天 📊。通过 RAG 使用 LLM 实现准确的文本到 SQL 生成 🔄。

ChromaDB & Ollama from vanna.ollama import Ollama from vanna.chromadb import ChromaDB_VectorStore class MyVanna(ChromaDB_VectorStore, Ollama): def init(self, config=None): ChromaDB_VectorStore.init(self, config=config) Ollama.init(self, config=config) vn = MyVanna(config={'model': 'qwen2:7b'}) vn.