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

渭南网站建设费用明细重庆seo网站建设

渭南网站建设费用明细,重庆seo网站建设,怎么宣传自己的网站推广,四年级摘抄一小段新闻🧠 向所有学习者致敬! “学习不是装满一桶水,而是点燃一把火。” —— 叶芝 我的博客主页: https://lizheng.blog.csdn.net 🌐 欢迎点击加入AI人工智能社区! 🚀 让我们一起努力,共创AI未来! 🚀 概述 GraphRAG 是一款革命性的智能问答系统,巧妙地将知识图谱与检…

🧠 向所有学习者致敬!

“学习不是装满一桶水,而是点燃一把火。” —— 叶芝


我的博客主页: https://lizheng.blog.csdn.net

🌐 欢迎点击加入AI人工智能社区!

🚀 让我们一起努力,共创AI未来! 🚀


概述

GraphRAG 是一款革命性的智能问答系统,巧妙地将知识图谱与检索增强生成技术相结合。就像给AI装上了"概念导航仪",它能够将输入文档转化为立体化的知识网络,在回答用户问题时实现精准的"信息寻宝"。系统融合了自然语言处理、机器学习和图论算法,让答案生成过程既智能又有迹可循。

设计动机

传统检索增强系统就像在图书馆里摸黑找书,常常陷入以下困境:

  • 上下文容易在长文档中"迷路"
  • 概念之间的关联就像断了线的珍珠
  • 决策过程像个黑箱,难以追溯

GraphRAG 的创新之处在于:

  1. 用知识图谱搭建"概念立交桥",保持信息间的立体关联
  2. 引入智能导航算法,让信息检索变成"自动驾驶"
  3. 可视化系统就像给思考过程装上行车记录仪

核心组件

  1. 文档处理器(DocumentProcessor):文档拆解专家,擅长将文档切成营养丰富的"知识块"
  2. 知识图谱(KnowledgeGraph):架构师,用节点和边搭建概念之间的高速公路网
  3. 查询引擎(QueryEngine):导航系统,在知识图谱中规划最优解答路径
  4. 可视化器(Visualizer):灵魂画手,将抽象的知识网络转化为直观的思维导图

实现细节

文档处理流程

  • 将文档切成易于消化的知识块(就像把披萨切成小块)
  • 为每个知识块生成语义指纹(嵌入向量)
  • 建立向量数据库,打造高速语义搜索引擎

知识图谱构建

  • 节点:每个知识块化身知识图谱的"城市"
  • 边:构建城市之间的"高速公路",基于:
    • 语义相似度(城市间的直线距离)
    • 共享概念(城市间的贸易往来)
  • 边权重:就像道路限速值,决定信息检索的优先路线

智能查询流程

  1. 用户问题变身"寻宝地图"(生成查询嵌入)
  2. 初始化优先队列:锁定最相关的"起点城市"
  3. 类Dijkstra算法导航:
    • 按连接强度优先探索(老司机带路)
    • 实时评估上下文完整性(检查油箱余量)
    • 动态扩展搜索范围(发现新大陆就更新地图)
  4. 终极答案生成:当知识图谱"燃料"耗尽时,启动大语言模型引擎

可视化呈现

  • 节点:知识城市
  • 边:彩色高速公路(颜色越深限速越高)
  • 遍历路径:红色虚线组成的"最佳路线"
  • 起终点标记:绿色起点站 vs 红色终点站

技术优势

  1. 立体化上下文感知:告别平面化搜索,实现三维知识导航
  2. 智能路径规划:不是简单关键词匹配,而是概念级语义寻路
  3. 决策过程透明化:每个答案都附带"行车记录仪"回放
  4. 弹性知识架构:新知识接入就像给城市扩建新区
  5. 高效信息检索:优先选择信息高速公路,拒绝乡间小道

结语

GraphRAG 如同给传统检索系统装上了GPS和全景天窗,在保持专业深度的同时,带来了更智能的导航体验和更透明的决策过程。随着知识图谱与语言模型的持续进化,这种"图脑结合"的架构正在开启智能问答的新纪元——让机器不仅知道答案,更懂得答案之间的千丝万缕。
在这里插入图片描述

导入依赖库

import networkx as nx
from langchain.vectorstores import FAISS
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.prompts import PromptTemplate
from langchain.retrievers import ContextualCompressionRetriever
from langchain.retrievers.document_compressors import LLMChainExtractor
from langchain.callbacks import get_openai_callbackfrom sklearn.metrics.pairwise import cosine_similarity
import matplotlib.pyplot as plt
import matplotlib.patches as patches
import os
import sys
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI
from typing import List, Tuple, Dict
from nltk.stem import WordNetLemmatizer
from nltk.tokenize import word_tokenize
import nltk
import spacy
import heapqfrom concurrent.futures import ThreadPoolExecutor, as_completed
from tqdm import tqdm
import numpy as npfrom spacy.cli import download
from spacy.lang.en import Englishsys.path.append(os.path.abspath(os.path.join(os.getcwd(), '..'))) # 将父目录加入系统路径
from helper_functions import *
from evaluation.evalute_rag import *# 加载环境变量
load_dotenv()# 设置OpenAI API密钥
os.environ["OPENAI_API_KEY"] = os.getenv('OPENAI_API_KEY')
os.environ["KMP_DUPLICATE_LIB_OK"]="TRUE"nltk.download('punkt', quiet=True)
nltk.download('wordnet', quiet=True)

定义文档处理器类

# 文档处理专家
class DocumentProcessor:def __init__(self):"""初始化文档处理器,配备文本分割器和OpenAI嵌入引擎属性:- text_splitter:递归字符文本分割器,配置了块大小和重叠量- embeddings:OpenAI嵌入模型实例"""self.text_splitter = RecursiveCharacterTextSplitter(chunk_size=1000, chunk_overlap=200)self.embeddings = OpenAIEmbeddings()def process_documents(self, documents):"""文档加工流水线:切分->嵌入->存储参数:- documents:待处理文档列表返回:- (文本块列表, 向量数据库) 元组"""splits = self.text_splitter.split_documents(documents)vector_store = FAISS.from_documents(splits, self.embeddings)return splits, vector_storedef create_embeddings_batch(self, texts, batch_size=32):"""批量生成文本嵌入(内存友好模式)参数:- texts:待嵌入文本列表- batch_size:批处理大小返回:- 嵌入向量矩阵"""embeddings = []for i in range(0, len(texts), batch_size):batch = texts[i:i+batch_size]batch_embeddings = self.embeddings.embed_documents(batch)embeddings.extend(batch_embeddings)return np.array(embeddings)def compute_similarity_matrix(self, embeddings):"""计算余弦相似度矩阵(语义关系网)参数:- embeddings:嵌入向量集合返回:- 相似度矩阵"""return cosine_similarity(embeddings)

定义知识图谱类

# 概念提取模型
class Concepts(BaseModel):concepts_list: List[str] = Field(description="概念列表")# 知识图谱构建专家
class KnowledgeGraph:def __init__(self):"""初始化知识图谱构建器属性:- graph:网络图实例- lemmatizer:词形还原器- concept_cache:概念缓存字典- nlp:spaCy NLP模型- edges_threshold:边添加阈值"""self.graph = nx.Graph()self.lemmatizer = WordNetLemmatizer()self.concept_cache = {}self.nlp = self._load_spacy_model()self.edges_threshold = 0.8def build_graph(self, splits, llm, embedding_model):"""图谱构建四部曲:节点创建->嵌入生成->概念提取->边连接参数:- splits:文档块列表- llm:大语言模型实例- embedding_model:嵌入模型实例"""self._add_nodes(splits)embeddings = self._create_embeddings(splits, embedding_model)self._extract_concepts(splits, llm)self._add_edges(embeddings)def _add_nodes(self, splits):""" 将文档块转化为图谱节点 """for i, split in enumerate(splits):self.graph.add_node(i, content=split.page_content)def _create_embeddings(self, splits, embedding_model):""" 为文档块生成语义指纹 """texts = [split.page_content for split in splits]return embedding_model.embed_documents(texts)def _compute_similarities(self, embeddings):""" 计算语义相似度矩阵 """return cosine_similarity(embeddings)def _load_spacy_model(self):""" 加载spaCy模型(自动下载模式) """try:return spacy.load("en_core_web_sm")except OSError:print("正在下载spaCy模型...")download("en_core_web_sm")return spacy.load("en_core_web_sm")def _extract_concepts_and_entities(self, content, llm):
http://www.dtcms.com/wzjs/299846.html

相关文章:

  • 怎么做一款贷款网站企业seo服务
  • 做网站是不是要域名费实时热点新闻事件
  • 腾讯合作网站建设有哪些公司搜索关键词排名优化软件
  • 网站空间最便宜佛山网站建设维护
  • 武汉新公司做网站网站优化方案案例
  • 萝岗区营销型网站建设电工培训
  • 网站建设电商板块1元涨1000粉
  • 网站建设中幻灯片如何加链接百度知道一下首页
  • wordpress定时发布文章0点aso关键词搜索优化
  • 陕西省交通建设集团公司门户网站在百度上做广告推广要多少钱
  • 关键词优化课程淮北seo
  • 自媒体平台注册入口企鹅号郑州seo线上推广系统
  • 甘肃省临夏州建设局网站电商大数据查询平台免费
  • 专业网吧装修设计公司seo站外推广
  • 做推广比较好的网站电脑培训班一般多少钱
  • 南宁住房建设部网站深圳网站建设
  • php多语言网站怎么做今天的新闻大事10条
  • wordpress图片如何排版seo公司运营
  • 强大的网站设计制作百度推广竞价托管
  • 网站受攻击培训方案及培训计划
  • 中山网站建设文化报价新闻发稿平台有哪些?
  • 兰州网站的建设建站优化
  • 做免费网站有哪些b2b商务平台
  • php做网站中下一步按钮seo优化知识
  • 昆明网站制作定制公司seol英文啥意思
  • 桂林八桂网苏州seo优化公司
  • 徐汇网站推广网络推广员每天的工作是什么
  • 70 网站制作网站长尾关键词排名软件
  • 镇江网站建设一般多少钱国际新闻网
  • 行业网站建设多少钱网站老域名跳转到新域名