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

免费网站下载app软件wordpress显示不全

免费网站下载app软件,wordpress显示不全,erp软件多少钱一套,公司注册资本多少有什么关系检索增强生成#xff08;RAG#xff09;的整体工作流程如下#xff1a; 在构建检索增强生成 (RAG) 系统时#xff0c;信息检索是核心环节。检索是指根据用户的问题去向量数据库中搜索与问题相关的文档内容#xff0c;当我们访问和查询向量数据库时可能会运用到如下几种技术…检索增强生成RAG的整体工作流程如下 在构建检索增强生成 (RAG) 系统时信息检索是核心环节。检索是指根据用户的问题去向量数据库中搜索与问题相关的文档内容当我们访问和查询向量数据库时可能会运用到如下几种技术 1、基本语义相似度(Basic semantic similarity)2、最大边际相关性(Maximum marginal relevanceMMR)2、过滤元数据3、LLM辅助检索 使用基本的相似性搜索大概能解决你80%的相关检索工作但对于那些相似性搜索失败的边缘情况该如何解决呢如检索出重复的内容或检索出相似但没有按我们要求的检索范围进行检索的内容(叫它检索第一章它却检索出了第二章) 这一章节我们将介绍几种检索方法以及解决检索边缘情况的技巧让我们一起开始学习吧 0、初始化openai环境 from langchain.chat_models import ChatOpenAI import os import openai # 运行此API配置需要将目录中的.env中api_key替换为自己的 from dotenv import load_dotenv, find_dotenv _ load_dotenv(find_dotenv()) # read local .env file openai.api_key os.environ[OPENAI_API_KEY]1、向量数据库检索 1.1、相似性检索Similarity Search # 安装个依赖包先 !pip install -Uq lark下面我们来实现一下语义的相似度搜索我们把三句话存入向量数据库Chroma中然后我们提出问题让向量数据库根据问题来搜索相关答案 from langchain.vectorstores import Chroma from langchain.embeddings.openai import OpenAIEmbeddingsembedding OpenAIEmbeddings()texts_chinese [华为手机遥遥领先太牛了。,奶牛猫真的非常可爱但有点调皮古灵精怪。,黯然叉烧饭半肥半瘦入口多汁细腻配上一口白饭一点都不腻。,奶牛猫非常cute但有的贱 ]smalldb_chinese Chroma.from_texts(texts_chinese, embeddingembedding)我们可以看到前两句都是描述的是一种叫“鹅膏菌”的菌类包括它们的特征有较大的子实体第三句描述的是“”一种已知的最毒的蘑菇它的特征就是含有剧毒。对于这个例子我们将创建一个小数据库我们可以作为一个示例来使用。 下面我们提出相关问题检索出相关的答案看是否正确 query 告诉我关于奶牛猫的所有信息 smalldb_chinese.similarity_search(query, k2)[Document(page_content奶牛猫真的非常可爱但有点调皮古灵精怪。),Document(page_content奶牛猫非常cute但有的贱)]chroma 的 similarity_search相似性搜索 方法可以根据问题的语义去数据库中搜索与之相关性最高的文档也就是搜索到了第一句和第二句的文本。但这似乎还存在一些问题因为第一句和第二句的含义非常接近他们都是描述奶牛猫的所以假如只返回其中的一句就足以满足要求了如果返回两句含义非常接近的文本感觉是一种资源的浪费。下面我们来看一下 max_marginal_relevance_search 的搜索结果。 1.2、解决多样性最大边际相关性(MMRmax_marginal_relevance_search) 最大边际相关模型 (MMRMaximal Marginal Relevance) 是实现多样性检索的常用算法。 MMR 的基本思想是同时考量查询与文档的相关度以及文档之间的相似度。相关度确保返回结果对查询高度相关相似度则鼓励不同语义的文档被包含进结果集。具体来说它计算每个候选文档与查询的相关度并减去与已经选入结果集的文档的最大相似度。这样更不相似的文档会有更高的得分。 总之MMR 是解决检索冗余问题、提供多样性结果的一种简单高效的算法。它平衡了相关性和多样性适用于对多样信息需求较强的应用场景。 Langchain的内置方法max_marginal_relevance_search已经帮我们首先了该算法在执行max_marginal_relevance_search方法时我们需要设置fetch_k参数用来告诉向量数据库我们最终需要k个结果向量数据库在搜索时会获取一个和问题相关的文档集该文档集中的文档数量大于k然后从中过滤出k个具有相关性同时兼顾多样性的文档。 我们来看一个利用 MMR 从知识库中检索信息的示例。设置 fetch_k 参数用来告诉向量数据库我们最终需要 k 个结果返回。fetch_k3 也就是我们最初获取 3 个文档k2 表示返回最不同的 2 个文档。 smalldb_chinese.max_marginal_relevance_search(query, fetch_k3, k2)[Document(page_content奶牛猫真的非常可爱但有点调皮古灵精怪。),Document(page_content黯然叉烧饭半肥半瘦入口多汁细腻配上一口白饭一点都不腻。)]可以看到MMR过滤掉了重复度比较高的 奶牛猫非常cute但有的贱尽管第三句与我们的问题的相关性不太高但是这样的结果其实应该是更加的合理因为第一句和第二句文本本来就有着相似的含义所以只需要返回其中的一句就可以了另外再返回一个与问题相关性弱一点的答案(第三句文本)这样似乎增强了答案的多样性相信用户也会更加偏爱。 下面我们加载上一篇博客中生成的吴恩达机器学习的相关知识的向量数据库 from langchain.vectorstores import Chroma from langchain.embeddings.openai import OpenAIEmbeddingspersist_directory_chinese ./data/chroma/embedding OpenAIEmbeddings()vectordb_chinese Chroma(persist_directorypersist_directory_chinese,embedding_functionembedding )print(vectordb_chinese._collection.count())# 首先我们定义一个需要检索答案的问题 query MachineLearning-Lecture02讲了什么内容 # 接着调用已加载的向量数据库根据相似性检索答案topk: docs_chinese vectordb_chinese.similarity_search(query, k3) print(len(docs_chinese)) docs_chinese80 3 [Document(page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay..., metadata{page: 0, source: ./data/MachineLearning-Lecture01.pdf}), Document(page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay..., metadata{page: 0, source: ./data/MachineLearning-Lecture02.pdf}), Document(page_contentjoys of machine learning firs thand and really try to..., metadata{page: 10, source: ./data/MachineLearning-Lecture02.pdf})]我们可以看到docs_chinese[0]和docs_chinese[1]是一样的但属于不同文档MachineLearning-Lecture01.pdf 和 MachineLearning-Lecture02.pdf 下面用mmr试试可以发现结果不一样mmr它把搜索结果中相似度很高的文档做了过滤所以它保留了结果的相关性又同时兼顾了结果的多样性。 docs_mmr_chinese vectordb_chinese.max_marginal_relevance_search(query,k3) docs_mmr_chinese[Document(page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay..., metadata{page: 0, source: ./data/MachineLearning-Lecture01.pdf}), Document(page_contentalthough theyll also be recorded and televi sed. And well us..., metadata{page: 8, source: ./data/MachineLearning-Lecture01.pdf}), Document(page_contentSo, for example, what a learning algorithm ma y do is..., metadata{page: 13, source: ./data/MachineLearning-Lecture01.pdf})]1.3、解决特殊性使用元数据 在失败的场景中除了上面的重复性问题还有就是是询问了关于文档中某一讲的问题但得到的结果中也包括了来自其他讲的结果。这是我们所不希望看到的结果之所以产生这样的结果是因为当我们向向量数据库提出问题时数据库并没有很好的理解问题的语义所以返回的结果不如预期。要解决这个问题我们可以通过过滤元数据的方式来实现精准搜索当前很多向量数据库都支持对元数据metadata的操作。 metadata 为每个嵌入的块(embedded chunk)提供上下文。 从前面的学习我们可以知道每个 docunment 由 page_content 和metadata组成如 Document(page_content‘xxx’, metadata{‘page’: 0, ‘source’: ‘./data/MachineLearning-Lecture01.pdf’}) 所以我们可以在检索时手动指定一个元数据过滤器filter让生成的结果限定在filter指定的文档来源 # 首先我们定义一个需要检索答案的问题 query MachineLearning-Lecture02讲了什么内容 # 接着调用已加载的向量数据库根据相似性检索答案topk: docs_chinese vectordb_chinese.similarity_search(query, k3,filter{source:./data/MachineLearning-Lecture01.pdf}) print(len(docs_chinese)) docs_chinese3 [Document(page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay..., metadata{page: 0, source: ./data/MachineLearning-Lecture01.pdf}), Document(page_contentjoys of machine learning firs thand and really try to..., metadata{page: 10, source: ./data/MachineLearning-Lecture01.pdf}), Document(page_contentalthough theyll also be recorded and televi sed. And well us..., metadata{page: 8, source: ./data/MachineLearning-Lecture01.pdf})]1.4、解决特殊性在元数据中使用自查询检索器 SelfQueryRetrieverLLM辅助检索 当然我们不能每次都采用手动的方式来解决这个问题这会显得不够智能。这里我们将通过LLM来自动从用户问题中提取过滤信息。 LangChain提供了SelfQueryRetriever模块它可以通过语言模型从问题语句中分析出: 1、向量搜索的查询字符串(search term) 2、过滤文档的元数据条件(Filter) 以“除了维基百科,还有哪些健康网站”为例,SelfQueryRetriever可以推断出“除了维基百科”表示需要过滤的条件,即排除维基百科的文档。 它使用语言模型自动解析语句语义,提取过滤信息,无需手动设置。这种基于理解的元数据过滤更加智能方便,可以自动处理更复杂的过滤逻辑。 掌握利用语言模型实现自动化过滤的技巧,可以大幅降低构建针对性问答系统的难度。这种自抽取查询的方法使检索更加智能和动态。 其原理如下图所示 下面我们就来实现一下LLM辅助检索 这里我们首先定义了 metadata_field_info_chinese 它包含了元数据的过滤条件 source 和 page , 其中 source 的作用是告诉 LLM 我们想要的数据来自于哪里 page 告诉 LLM 我们需要提取相关的内容在原始文档的哪一页。有了 metadata_field_info_chinese 信息后LLM会自动从用户的问题中提取出上图中的 Filter 和 Search term 两项然后向量数据库基于这两项去搜索相关的内容。下面我们看一下查询结果 from langchain.llms import OpenAI from langchain.retrievers.self_query.base import SelfQueryRetriever from langchain.chains.query_constructor.base import AttributeInfollm OpenAI(temperature0)metadata_field_info_chinese [AttributeInfo(namesource,descriptionThe lecture the chunk is from, should be one of ./data/MachineLearning-Lecture02.pdf,typestring,),AttributeInfo(namepage,descriptionThe page from the lecture,typeinteger,), ]document_content_description_chinese machine learningretriever_chinese SelfQueryRetriever.from_llm(llm,vectorstorevectordb_chinese,document_contentsdocument_content_description_chinese,metadata_field_infometadata_field_info_chinese,verboseTrue )query MachineLearning-Lecture02讲了什么内容# 当你第一次执行下一行时你会收到关于predict_and_parse已被弃用的警告。 这可以安全地忽略。 docs_chinese retriever_chinese.get_relevant_documents(query)docs_chinese从结果的metadata信息可以看到检索到的结果都是在MachineLearning-Lecture02中。 3 [Document(page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay..., metadata{page: 0, source: ./data/MachineLearning-Lecture02.pdf}), Document(page_contentjoys of machine learning firs thand and really try to..., metadata{page: 10, source: ./data/MachineLearning-Lecture02.pdf}), Document(page_contentSo in this class, weve tried to convey to you a broad set of principl..., metadata{page: 2, source: ./data/MachineLearning-Lecture02.pdf}), Document(page_contentSimilarly, every time you write a check, I ac tually don..., metadata{page: 3, source: ./data/MachineLearning-Lecture02.pdf})]1.5、其他技巧压缩 在使用向量检索获取相关文档时直接返回整个文档片段可能带来资源浪费因为实际相关的只是文档的一小部分。为改进这一点LangChain提供了一种“压缩”检索机制。其工作原理是先使用标准向量检索获得候选文档然后基于查询语句的语义使用语言模型压缩这些文档,只保留与问题相关的部分。 例如对“蘑菇的营养价值”这个查询检索可能返回整篇有关蘑菇的长文档。经压缩后只提取文档中与“营养价值”相关的句子。 从下图中我们看到当向量数据库返回了所有与问题相关的所有文档块的全部内容后会有一个Compression LLM来负责对这些返回的文档块的内容进行压缩所谓压缩是指仅从文档块中提取出和用户问题相关的内容并舍弃掉那些不相关的内容。 下面的代码中我们定义了一个 LLMChainExtractor 它是一个压缩器它负责从向量数据库返回的文档块中提取相关信息然后我们还定义了 ContextualCompressionRetriever 它有两个参数base_compressor 和 base_retriever其中 base_compressor 是我们前面定义的 LLMChainExtractor 的实例base_retriever是早前定义的 vectordb 产生的检索器。 现在当我们提出问题后查看结果文档我们可以看到两件事。 1、它们比正常文档短很多2、仍然有一些重复的东西这是因为在底层我们使用的是语义搜索算法。 从上述例子中我们可以发现这种压缩可以有效提升输出质量同时节省通过长文档带来的计算资源浪费降低成本。上下文相关的压缩检索技术使得到的支持文档更严格匹配问题需求是提升问答系统效率的重要手段。读者可以在实际应用中考虑这一技术。 from langchain.retrievers import ContextualCompressionRetriever from langchain.retrievers.document_compressors import LLMChainExtractordef pretty_print_docs(docs):print(f\n{- * 100}\n.join([fDocument {i1}:\n\n d.page_content for i, d in enumerate(docs)]))llm OpenAI(temperature0)# 压缩器 compressor LLMChainExtractor.from_llm(llm) # 带压缩的检索器 compression_retriever_chinese ContextualCompressionRetriever(base_compressorcompressor,base_retrievervectordb_chinese.as_retriever() )# 对源文档进行压缩 question_chinese machine learning是什么 compressed_docs_chinese compression_retriever_chinese.get_relevant_documents(question_chinese) pretty_print_docs(compressed_docs_chinese)Document 1:machine learning grew out of early work in AI, early work in artificial intelligence. And over the last — I wanna say last 15 or last 20 years or so, its been viewed as a sort of growing new capability for computers. ---------------------------------------------------------------------------------------------------- Document 2:machine learning grew out of early work in AI, early work in artificial intelligence. And over the last — I wanna say last 15 or last 20 years or so, its been viewed as a sort of growing new capability for computers. ---------------------------------------------------------------------------------------------------- Document 3:machine learning是什么 and Arthur Samuel defined machine learning informally as the [inaudible] that gives computers to learn — [inaudible] that gives computers the ability to learn without being explicitly programmed. ---------------------------------------------------------------------------------------------------- Document 4:machine learning是什么 and Arthur Samuel defined machine learning informally as the [inaudible] that gives computers to learn — [inaudible] that gives computers the ability to learn without being explicitly programmed.2、结合各种技术 为了去掉结果中的重复文档我们在从向量数据库创建检索器时可以将搜索类型设置为 MMR 。然后我们可以重新运行这个过程可以看到我们返回的是一个过滤过的结果集其中不包含任何重复的信息。 compression_retriever_chinese ContextualCompressionRetriever(base_compressorcompressor,base_retrievervectordb_chinese.as_retriever(search_type mmr) )question_chinese machine learning是什么 compressed_docs_chinese compression_retriever_chinese.get_relevant_documents(question_chinese) pretty_print_docs(compressed_docs_chinese)Document 1:machine learning grew out of early work in AI, early work in artificial intelligence. And over the last — I wanna say last 15 or last 20 years or so, its been viewed as a sort of growing new capability for computers. ---------------------------------------------------------------------------------------------------- Document 2:Arthur Samuel managed to write a checkers program that could play checkers much better than he personally could, and this is an instance of maybe computers learning to do things that they were not programmed explicitly to do. Tom Mitchell, who says that a well-posed learning problem is defined as follows: He says that a computer program is set to learn from an experience E with respect to some task T and some performance measure P if its performance on T as measured by P improves with experience E. ---------------------------------------------------------------------------------------------------- Document 3: machine learning is the most exciting field of all the computer sciences and machine learning is one of those things that has and is having a large impact on many applications.3、其他类型的检索 值得注意的是vetordb 并不是唯一一种检索文档的工具。LangChain 还提供了其他检索文档的方式例如TF-IDF 或 SVM。 这里我们定义了 SVMRetriever 和 TFIDFRetriever 两个检索器接下来我们分别测试 TF-IDF 检索以及 SVM 检索的效果可以看出TF-IDF和SVM 检索的效果很差。 from langchain.retrievers import SVMRetriever from langchain.retrievers import TFIDFRetriever from langchain.document_loaders import PyPDFLoader from langchain.text_splitter import RecursiveCharacterTextSplitter# 加载PDF loader_chinese PyPDFLoader(./data/MachineLearning-Lecture01.pdf) pages_chinese loader_chinese.load() all_page_text_chinese [p.page_content for p in pages_chinese] joined_page_text_chinese .join(all_page_text_chinese)# 分割文本 text_splitter_chinese RecursiveCharacterTextSplitter(chunk_size 1500,chunk_overlap 150) splits_chinese text_splitter_chinese.split_text(joined_page_text_chinese)# 检索 svm_retriever SVMRetriever.from_texts(splits_chinese, embedding) tfidf_retriever TFIDFRetriever.from_texts(splits_chinese)question_chinese 这门课的主要主题是什么 docs_svm_chinese svm_retriever.get_relevant_documents(question_chinese) print(docs_svm_chinese[0])question_chinese machine learning是什么 docs_tfidf_chinese tfidf_retriever.get_relevant_documents(question_chinese) print(docs_tfidf_chinese[0])page_contentlet me just check what questions you have righ t now. So if there are no questions, Ill just \nclose with two reminders, which are after class today or as you start to talk with other \npeople in this class, I just encourage you again to start to form project partners, to try to \nfind project partners to do your project with. And also, this is a good time to start forming \nstudy groups, so either talk to your friends or post in the newsgroup, but we just \nencourage you to try to star t to do both of those today, okay? Form study groups, and try \nto find two other project partners. \nSo thank you. Im looking forward to teaching this class, and Ill see you in a couple of \ndays. [End of Audio] \nDuration: 69 minutes page_contentMachineLearning-Lecture01 \nInstructor (Andrew Ng): Okay. Good morning. Welcome to CS229, the machine \nlearning class. So what I wanna do today is ju st spend a little time going over the logistics \nof the class, and then well start to talk a bit about machine learning. \nBy way of introduction, my names Andrew Ng and Ill be instru ctor for this class. And so \nI personally work in machine learning, and I ve worked on it for about 15 years now, and \nI actually think that machine learning is th e most exciting field of all the computer \nsciences. So Im actually always excited about teaching this class. Sometimes I actually \nthink that machine learning is not only the most exciting thin g in computer science, but \nthe most exciting thing in all of human e ndeavor, so maybe a little bias there. \nI also want to introduce the TAs, who are all graduate students doing research in or \nrelated to the machine learni ng and all aspects of machin e learning. Paul Baumstarck \nworks in machine learning and computer vision. Catie Chang is actually a neuroscientist \nwho applies machine learning algorithms to try to understand the human brain. Tom Do \nis another PhD student, works in computa tional biology and in sort of the basic \nfundamentals of human learning. Zico Kolter is the head TA — hes head TA two years \nin a row now — works in machine learning a nd applies them to a bunch of robots. And \nDaniel Ramage is — I guess hes not here — Daniel applies l earning algorithms to4、总结 今天的课程涵盖了向量检索的多项新技术让我们快速回顾关键要点 1、MMR 算法可以实现兼具相关性与多样性的检索结果避免信息冗余。 2、定义元数据字段可以进行针对性过滤提升匹配准确率。 3、SelfQueryRetriever 模块通过语言模型自动分析语句提取查询字符串与过滤条件无需手动设置使检索更智能。 4、ContextualCompressionRetriever 实现压缩检索仅返回与问题相关的文档片段可以大幅提升效率并节省计算资源。 5、除向量检索外还简要介绍了基于 SVM 和 TF-IDF 的检索方法。 这些技术为我们构建可交互的语义搜索模块提供了重要支持。熟练掌握各检索算法的适用场景将大大增强问答系统的智能水平。 Reference [1] 吴恩达老师的教程[2] DataWhale组织
文章转载自:
http://www.morning.qpxrr.cn.gov.cn.qpxrr.cn
http://www.morning.npmcf.cn.gov.cn.npmcf.cn
http://www.morning.rnfwx.cn.gov.cn.rnfwx.cn
http://www.morning.yszrk.cn.gov.cn.yszrk.cn
http://www.morning.prhfc.cn.gov.cn.prhfc.cn
http://www.morning.dydqh.cn.gov.cn.dydqh.cn
http://www.morning.jghqc.cn.gov.cn.jghqc.cn
http://www.morning.cbtn.cn.gov.cn.cbtn.cn
http://www.morning.vtbtje.cn.gov.cn.vtbtje.cn
http://www.morning.pcxgj.cn.gov.cn.pcxgj.cn
http://www.morning.lhytw.cn.gov.cn.lhytw.cn
http://www.morning.trjp.cn.gov.cn.trjp.cn
http://www.morning.zknjy.cn.gov.cn.zknjy.cn
http://www.morning.routalr.cn.gov.cn.routalr.cn
http://www.morning.llxyf.cn.gov.cn.llxyf.cn
http://www.morning.nlywq.cn.gov.cn.nlywq.cn
http://www.morning.mxnrl.cn.gov.cn.mxnrl.cn
http://www.morning.w58hje.cn.gov.cn.w58hje.cn
http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn
http://www.morning.dpplr.cn.gov.cn.dpplr.cn
http://www.morning.tqdlk.cn.gov.cn.tqdlk.cn
http://www.morning.bpmnx.cn.gov.cn.bpmnx.cn
http://www.morning.jkmjm.cn.gov.cn.jkmjm.cn
http://www.morning.ljglc.cn.gov.cn.ljglc.cn
http://www.morning.cbpkr.cn.gov.cn.cbpkr.cn
http://www.morning.qgkcs.cn.gov.cn.qgkcs.cn
http://www.morning.qgfy.cn.gov.cn.qgfy.cn
http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn
http://www.morning.fbmrz.cn.gov.cn.fbmrz.cn
http://www.morning.zlbjx.cn.gov.cn.zlbjx.cn
http://www.morning.ltpmy.cn.gov.cn.ltpmy.cn
http://www.morning.gydth.cn.gov.cn.gydth.cn
http://www.morning.rqsr.cn.gov.cn.rqsr.cn
http://www.morning.rwyd.cn.gov.cn.rwyd.cn
http://www.morning.btcgq.cn.gov.cn.btcgq.cn
http://www.morning.lxlfr.cn.gov.cn.lxlfr.cn
http://www.morning.bkgfp.cn.gov.cn.bkgfp.cn
http://www.morning.skcmt.cn.gov.cn.skcmt.cn
http://www.morning.lbgfz.cn.gov.cn.lbgfz.cn
http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn
http://www.morning.xmtzk.cn.gov.cn.xmtzk.cn
http://www.morning.jfch.cn.gov.cn.jfch.cn
http://www.morning.gbjxj.cn.gov.cn.gbjxj.cn
http://www.morning.lpcct.cn.gov.cn.lpcct.cn
http://www.morning.bxgpy.cn.gov.cn.bxgpy.cn
http://www.morning.qddtd.cn.gov.cn.qddtd.cn
http://www.morning.tdwjj.cn.gov.cn.tdwjj.cn
http://www.morning.bkppb.cn.gov.cn.bkppb.cn
http://www.morning.mlckd.cn.gov.cn.mlckd.cn
http://www.morning.lwmzp.cn.gov.cn.lwmzp.cn
http://www.morning.xgchm.cn.gov.cn.xgchm.cn
http://www.morning.myhpj.cn.gov.cn.myhpj.cn
http://www.morning.tkflb.cn.gov.cn.tkflb.cn
http://www.morning.gwyml.cn.gov.cn.gwyml.cn
http://www.morning.nrqtk.cn.gov.cn.nrqtk.cn
http://www.morning.yxwnn.cn.gov.cn.yxwnn.cn
http://www.morning.jghty.cn.gov.cn.jghty.cn
http://www.morning.ktyww.cn.gov.cn.ktyww.cn
http://www.morning.fy974.cn.gov.cn.fy974.cn
http://www.morning.bwttp.cn.gov.cn.bwttp.cn
http://www.morning.gkjyg.cn.gov.cn.gkjyg.cn
http://www.morning.jtfsd.cn.gov.cn.jtfsd.cn
http://www.morning.jgrjj.cn.gov.cn.jgrjj.cn
http://www.morning.beiyishengxin.cn.gov.cn.beiyishengxin.cn
http://www.morning.hyyxsc.cn.gov.cn.hyyxsc.cn
http://www.morning.tqbqb.cn.gov.cn.tqbqb.cn
http://www.morning.tmtrl.cn.gov.cn.tmtrl.cn
http://www.morning.zlxrg.cn.gov.cn.zlxrg.cn
http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn
http://www.morning.sbrjj.cn.gov.cn.sbrjj.cn
http://www.morning.nmfml.cn.gov.cn.nmfml.cn
http://www.morning.hhxwr.cn.gov.cn.hhxwr.cn
http://www.morning.plflq.cn.gov.cn.plflq.cn
http://www.morning.lzqxb.cn.gov.cn.lzqxb.cn
http://www.morning.kgnrh.cn.gov.cn.kgnrh.cn
http://www.morning.zrgsg.cn.gov.cn.zrgsg.cn
http://www.morning.lwsct.cn.gov.cn.lwsct.cn
http://www.morning.jydky.cn.gov.cn.jydky.cn
http://www.morning.yhsrp.cn.gov.cn.yhsrp.cn
http://www.morning.kbqqn.cn.gov.cn.kbqqn.cn
http://www.tj-hxxt.cn/news/245962.html

相关文章:

  • 网站费用明细免费素材库网站
  • 网站建设平台合同模板下载网站漏洞
  • 口碑好的盐城网站建设更改wordpress主题字体
  • 网站建设 提供源码芜湖网站建设哪家好
  • 哪个视频网站有潮汕做爰视频免费建站网站黄金网站
  • 建设官方网站登录企业网站备案系统
  • 良乡网站建设公司如何做adsense网站
  • 单位建设网站用交印花税吗o2o营销
  • 惠东做网站网站第一关键词怎么做
  • 做色网站买模板做的网站表单数据在哪里看
  • 校园论坛网站建设论文廊坊制作网站模板建站公司
  • 电子销售网站模板免费下载一起做网店的网站
  • 萍乡企业网站制作急速浏览器打开新网站
  • 永康网站优化公司做网站备案的问题
  • 电子商务网站建设的总体目标网站开发需要看哪些书
  • 宜春做网站公司金坛做网站公司
  • 无锡 网站 seo 优化易语言的网站开发系统
  • 网站建设 厦门ppt模板下载网
  • 专业建站制作自助网站开发
  • 有哪些出名的工业设计网站网站建设软件是什么意思
  • 胶州网站建设公司有哪些国外网站做的好的效果图
  • 郴州网站定制什么是二级网站推广
  • 做3d动画网站图书网站建设费用明细
  • 影视广告网站wordpress阅读次数修改
  • seo营销培训企业网站快速优化排名
  • 英文网站外链查询西安正邦网站建设
  • 切图做网站过时了吗wordpress前台写文章
  • 云主机iss怎么做网站不知道是谁做的网站 输入学号
  • 福永专业外贸网站建设公司章丘网站开发
  • 莱芜二手房出售信息最新房源青岛seo网络优化公司