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

昆明建个网站哪家便宜重庆市招投标网官网

昆明建个网站哪家便宜,重庆市招投标网官网,erp系统自学详细教程,微网站开发方案模板本文介绍RAG的一些高级用法(Advanced RAG),很多语法都需要借助检索增强对象RetrievalAugmentor实现。 RetrievalAugmentor是 RAG 管道的入口,它负责对用户提出问题的检索信息进行增强。 下面我们通过一些案例介绍下RAG的高级语法…

本文介绍RAG的一些高级用法(Advanced RAG),很多语法都需要借助检索增强对象RetrievalAugmentor实现。

RetrievalAugmentor是 RAG 管道的入口,它负责对用户提出问题的检索信息进行增强。

下面我们通过一些案例介绍下RAG的高级语法。

查询压缩

查询转换器(QueryTransformer) 将提出的问题进行转换,其目标是通过修改或扩展原始内容来提高检索质量。

如果不做设置,使用的是默认的转换器(DefaultQueryTransformer)。

进行查询压缩,需要借助CompressingQueryTransformer对象实现。

通过查询压缩转换器,大模型将给定的会话和之前的会话压缩到一个独立的会话中 。当用户提出的新问题,需要引用先前问题或答案中信息时,会对问题进行进一步补充完善,通过该方式,提高RAG检索质量。

比如如下会话中:

User: Tell me about John Doe
AI: John Doe was a ...
User: Where did he live?

该会话中,"Where did he live"中的"he"指的是John Doe,如果可以将其转换为"Where did John Doe live",RAG进行内容检索时,检索出的信息将会更加准确。

测试代码

package com.renr.langchain4jnew.app5;import com.renr.langchain4jnew.app4.NaiveRAG;
import com.renr.langchain4jnew.constant.CommonConstants;
import dev.langchain4j.community.model.zhipu.ZhipuAiChatModel;
import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.document.DocumentParser;
import dev.langchain4j.data.document.loader.FileSystemDocumentLoader;
import dev.langchain4j.data.document.parser.TextDocumentParser;
import dev.langchain4j.data.document.splitter.DocumentSplitters;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.model.embedding.onnx.bgesmallenv15q.BgeSmallEnV15QuantizedEmbeddingModel;
import dev.langchain4j.rag.DefaultRetrievalAugmentor;
import dev.langchain4j.rag.RetrievalAugmentor;
import dev.langchain4j.rag.content.retriever.ContentRetriever;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.rag.query.transformer.CompressingQueryTransformer;
import dev.langchain4j.rag.query.transformer.QueryTransformer;
import dev.langchain4j.service.AiServices;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.EmbeddingStoreIngestor;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;import java.net.URISyntaxException;
import java.net.URL;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Duration;public class AdvancedRAG01_QueryCompression {public static void main(String[] args) throws URISyntaxException {// 获取待加载的文档路径URL fileUrl = AdvancedRAG01_QueryCompression.class.getClassLoader().getResource("document/biography-of-john-doe.txt");Path path = Paths.get(fileUrl.toURI());// 指定文档解析器DocumentParser documentParser = new TextDocumentParser();// 加载文档数据Document document = FileSystemDocumentLoader.loadDocument(path, documentParser);EmbeddingModel embeddingModel = new BgeSmallEnV15QuantizedEmbeddingModel();EmbeddingStore<TextSegment> embeddingStore = new InMemoryEmbeddingStore<>();EmbeddingStoreIngestor ingestor = EmbeddingStoreIngestor.builder().documentSplitter(DocumentSplitters.recursive(300, 0)).embeddingModel(embeddingModel).embeddingStore(embeddingStore).build();ingestor.ingest(document);ChatLanguageModel chatModel = ZhipuAiChatModel.builder()// 模型key.apiKey(CommonConstants.API_KEY)// 精确度.temperature(0.9).model("GLM-4-Flash").maxRetries(3).callTimeout(Duration.ofSeconds(60)).connectTimeout(Duration.ofSeconds(60)).writeTimeout(Duration.ofSeconds(60)).readTimeout(Duration.ofSeconds(60)).logRequests(true).logResponses(true).build();// 用钱用于查询压缩的转换器QueryTransformer queryTransformer = new CompressingQueryTransformer(chatModel);// 内容检索对象ContentRetriever contentRetriever = EmbeddingStoreContentRetriever.builder().embeddingStore(embeddingStore).embeddingModel(embeddingModel).maxResults(2).minScore(0.6).build();// 创建检索增强器对象,指定使用的查询压缩转换器RetrievalAugmentor retrievalAugmentor = DefaultRetrievalAugmentor.builder().queryTransformer(queryTransformer).contentRetriever(contentRetriever).build();// 通过retrievalAugmentor属性设置检索增强对象,不再需要设置contentRetriever属性Assistant assistant = AiServices.builder(Assistant.class).chatLanguageModel(chatModel)// .contentRetriever(contentRetriever).retrievalAugmentor(retrievalAugmentor).chatMemory(MessageWindowChatMemory.withMaxMessages(10)).build();String answer = assistant.chat("Tell me about John Doe");System.out.println(answer);String answer2 = assistant.chat("Where did he live?");System.out.println(answer2);}}

执行过程

第一次发送请求:

13:12:12.553 [main] DEBUG dev.langchain4j.community.model.zhipu.RequestLoggingInterceptor - Request:
- method: POST
- url: https://open.bigmodel.cn/api/paas/v4/chat/completions
- headers: [Authorization: Bearer ey...fQ.ew0KICAiZXhwIiA6IDE3NDUzODY5MzI0NTQsDQogICJhcGlfa2V5IiA6ICJkMjMzNGIyZTk4NTE0YWUwOTIzMDQ4YTM4NDEzNTMwNiIsDQogICJ0aW1lc3RhbXAiIDogMTc0NTM4NTEzMjQ1NA0KfQ.HMKFRo2H_AgMQdJdnujEuliSA6Nbm6oqCxMpT0nuUzk]
- body: {"model" : "GLM-4-Flash","messages" : [ {"role" : "user","content" : "Tell me about John Doe\n\nAnswer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation."} ],"stream" : false,"temperature" : 0.9,"max_tokens" : 512,"tool_choice" : "auto"
}

通过content,可以看出,这是我们提出的第一个问题。 

第二次发送请求:

13:12:18.377 [main] DEBUG dev.langchain4j.community.model.zhipu.RequestLoggingInterceptor - Request:
- method: POST
- url: https://open.bigmodel.cn/api/paas/v4/chat/completions
- headers: [Authorization: Bearer ey...fQ.ew0KICAiZXhwIiA6IDE3NDUzODY5MzI0NTQsDQogICJhcGlfa2V5IiA6ICJkMjMzNGIyZTk4NTE0YWUwOTIzMDQ4YTM4NDEzNTMwNiIsDQogICJ0aW1lc3RhbXAiIDogMTc0NTM4NTEzMjQ1NA0KfQ.HMKFRo2H_AgMQdJdnujEuliSA6Nbm6oqCxMpT0nuUzk]
- body: {"model" : "GLM-4-Flash","messages" : [ {"role" : "user","content" : "Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\n\nConversation:\nUser: Tell me about John Doe\n\nAnswer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\nAI: John Doe, an Imaginary Luminary, is a fictional character whose story begins in the early 1980s. Born on April 1, 1980, in the picturesque town of Fictionville, USA, John was the only child of Jane and Joe Doe. From a young age, John displayed a remarkable talent for creativity and innovation, which would later shape his life's trajectory.\n\nGrowing up in Fictionville, a town known for its serene atmosphere and close-knit community, John was nurtured in an environment that fostered imagination and curiosity. His parents, Jane and Joe Doe, were proud of their son's early inclinations and encouraged him to explore his creative passions.\n\nAs John matured, his education became a cornerstone of his development. He attended the local schools in Fictionville, where he honed his skills and began to lay the groundwork for his future endeavors. It was during these formative years that John's innate creativity and innovative spirit began to take root, setting the stage for his eventual rise to prominence in the world of imagination and innovation.\n\nUser query: Where did he live?\n\nIt is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!"} ],"stream" : false,"temperature" : 0.9,"max_tokens" : 512,"tool_choice" : "auto"
}

content中的内容比较长,通过content,可以看出这个问题不是我们问的,而是LangChain4j通过上下文,针对下一个问题,给出的思考。

下面我们看看content中的内容:

"Read and understand the conversation between the User and the AI. Then, analyze the new query from the User. Identify all relevant details, terms, and context from both the conversation and the new query. Reformulate this query into a clear, concise, and self-contained format suitable for information retrieval.\n\n

翻译:阅读并理解用户与 AI 之间的对话。然后,分析来自 User 的新查询。从对话和新查询中识别所有相关的详细信息、术语和上下文。将此查询重新表述为适合信息检索的清晰、简洁且自包含的格式。

下面是将上下文信息也放入提示词:

Conversation:\n

User: Tell me about John Doe\n\n

Answer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\nAI: John Doe, an Imaginary Luminary, is a fictional character whose story begins in the early 1980s. Born on April 1, 1980, in the picturesque town of Fictionville, USA, John was the only child of Jane and Joe Doe. From a young age, John displayed a remarkable talent for creativity and innovation, which would later shape his life's trajectory.\n\nGrowing up in Fictionville, a town known for its serene atmosphere and close-knit community, John was nurtured in an environment that fostered imagination and curiosity. His parents, Jane and Joe Doe, were proud of their son's early inclinations and encouraged him to explore his creative passions.\n\nAs John matured, his education became a cornerstone of his development. He attended the local schools in Fictionville, where he honed his skills and began to lay the groundwork for his future endeavors. It was during these formative years that John's innate creativity and innovative spirit began to take root, setting the stage for his eventual rise to prominence in the world of imagination and innovation.\n\n

content中还包含下一个问题

User query: Where did he live?\n\n

It is very important that you provide only reformulated query and nothing else! Do not prepend a query with anything!"
翻译:请务必仅提供重新构建的 query,而不提供任何其他内容!不要在查询前面加上任何内容!

第二次请求的响应:

{"choices": [{"finish_reason": "stop","index": 0,"message": {"content": "John Doe's place of residence throughout his life.","role": "assistant"}}],"created": 1745385140,"id": "202504231312195e711186c3f34537","model": "GLM-4-Flash","request_id": "202504231312195e711186c3f34537","usage": {"completion_tokens": 12,"prompt_tokens": 384,"total_tokens": 396}
}

该响应中,大模型将我们下一个问题,进行了转换,转换为:John Doe's place of residence throughout his life.

第三次请求:

13:12:18.983 [main] DEBUG dev.langchain4j.community.model.zhipu.RequestLoggingInterceptor - Request:
- method: POST
- url: https://open.bigmodel.cn/api/paas/v4/chat/completions
- headers: [Authorization: Bearer ey...fQ.ew0KICAiZXhwIiA6IDE3NDUzODY5MzgzNzUsDQogICJhcGlfa2V5IiA6ICJkMjMzNGIyZTk4NTE0YWUwOTIzMDQ4YTM4NDEzNTMwNiIsDQogICJ0aW1lc3RhbXAiIDogMTc0NTM4NTEzODM3NQ0KfQ.RlbvjNPx71uKtwQs7-U2iHc2vUT89R66XblGOkeZTlU]
- body: {"model" : "GLM-4-Flash","messages" : [ {"role" : "user","content" : "Tell me about John Doe\n\nAnswer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation."}, {"role" : "assistant","content" : "John Doe, an Imaginary Luminary, is a fictional character whose story begins in the early 1980s. Born on April 1, 1980, in the picturesque town of Fictionville, USA, John was the only child of Jane and Joe Doe. From a young age, John displayed a remarkable talent for creativity and innovation, which would later shape his life's trajectory.\n\nGrowing up in Fictionville, a town known for its serene atmosphere and close-knit community, John was nurtured in an environment that fostered imagination and curiosity. His parents, Jane and Joe Doe, were proud of their son's early inclinations and encouraged him to explore his creative passions.\n\nAs John matured, his education became a cornerstone of his development. He attended the local schools in Fictionville, where he honed his skills and began to lay the groundwork for his future endeavors. It was during these formative years that John's innate creativity and innovative spirit began to take root, setting the stage for his eventual rise to prominence in the world of imagination and innovation."}, {"role" : "user","content" : "Where did he live?\n\nAnswer using the following information:\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\n\nJohn Doe: An Imaginary Luminary"} ],"stream" : false,"temperature" : 0.9,"max_tokens" : 512,"tool_choice" : "auto"
}

针对"Where did he live",通过content,可以看出检索的内容如下:

Answer using the following information:\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\n\nJohn Doe: An Imaginary Luminary

第三次请求的响应:

{"choices": [{"finish_reason": "stop","index": 0,"message": {"content": "John Doe, as an Imaginary Luminary, lived in the quaint town of Fictionville, USA. This town served as the backdrop for his early life and education, shaping his formative years and nurturing his early inclination towards creativity and innovation. Being the only child of Jane and Joe Doe, his surroundings in Fictionville would have played a significant role in the development of his personality and talents.","role": "assistant"}}],"created": 1745385142,"id": "2025042313122054c1ad256e0d4150","model": "GLM-4-Flash","request_id": "2025042313122054c1ad256e0d4150","usage": {"completion_tokens": 81,"prompt_tokens": 358,"total_tokens": 439}
}

不使用CompressingQueryTransformer的对比

第一次请求

13:40:04.468 [main] DEBUG dev.langchain4j.community.model.zhipu.RequestLoggingInterceptor - Request:
- method: POST
- url: https://open.bigmodel.cn/api/paas/v4/chat/completions
- headers: [Authorization: Bearer ey...fQ.ew0KICAiZXhwIiA6IDE3NDUzODg2MDQzNTQsDQogICJhcGlfa2V5IiA6ICJkMjMzNGIyZTk4NTE0YWUwOTIzMDQ4YTM4NDEzNTMwNiIsDQogICJ0aW1lc3RhbXAiIDogMTc0NTM4NjgwNDM1NA0KfQ.c22g_UY7JkJ2J-_GRGobaEMurph_cu22A4DHyEBNPaA]
- body: {"model" : "GLM-4-Flash","messages" : [ {"role" : "user","content" : "Tell me about John Doe\n\nAnswer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation."} ],"stream" : false,"temperature" : 0.9,"max_tokens" : 512,"tool_choice" : "auto"
}

第二次请求

13:40:11.970 [main] DEBUG dev.langchain4j.community.model.zhipu.RequestLoggingInterceptor - Request:
- method: POST
- url: https://open.bigmodel.cn/api/paas/v4/chat/completions
- headers: [Authorization: Bearer ey...fQ.ew0KICAiZXhwIiA6IDE3NDUzODg2MDQzNTQsDQogICJhcGlfa2V5IiA6ICJkMjMzNGIyZTk4NTE0YWUwOTIzMDQ4YTM4NDEzNTMwNiIsDQogICJ0aW1lc3RhbXAiIDogMTc0NTM4NjgwNDM1NA0KfQ.c22g_UY7JkJ2J-_GRGobaEMurph_cu22A4DHyEBNPaA]
- body: {"model" : "GLM-4-Flash","messages" : [ {"role" : "user","content" : "Tell me about John Doe\n\nAnswer using the following information:\nJohn Doe: An Imaginary Luminary\n\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation."}, {"role" : "assistant","content" : "John Doe, referred to as an Imaginary Luminary, is a character shrouded in mystery and creativity. He was born on April 1, 1980, in the picturesque and whimsical town of Fictionville, USA. As the only child of Jane and Joe Doe, young John's early life was marked by his evident affinity for creative expression and innovative thinking.\n\nFrom a young age, it was apparent that John had a distinct taste for the unusual, and this curiosity translated into a profound love for the arts. As he grew up in the close-knit community of Fictionville, John absorbed the town's idyllic charm, which likely influenced the direction of his life and work. While details about his educational background are not specified, it can be inferred that he would have nurtured his nascent creative spark and probably engaged in activities that fostered imagination and innovation. Through his formative years, John Doe began to carve his path as a luminary whose work and presence would one day capture the imagination of others, even though his story remains largely hypothetical and unverified."}, {"role" : "user","content" : "Where did he live?\n\nAnswer using the following information:\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\n\nIn his personal life, John is known to be a private individual.\nHe married his college sweetheart, Emily, and they have two children.\nThe family resides in a sustainable home in Fictionville, where Doe enjoys gardening and mentoring young entrepreneurs."} ],"stream" : false,"temperature" : 0.9,"max_tokens" : 512,"tool_choice" : "auto"
}

第二次请求的响应

{"choices": [{"finish_reason": "stop","index": 0,"message": {"content": "John Doe lived in the quaint town of Fictionville, USA. This town, steeped in charm and likely reflective of a nurturing environment, was where he was born on April 1, 1980. As he grew, John continued to reside in Fictionville, where he married his college sweetheart, Emily. The couple has two children, and their family now resides in a sustainable home within the same town. John's deep connection to Fictionville is evidenced by his enjoyment of activities such as gardening and mentoring young entrepreneurs, further indicating his commitment to the local community and his desire to contribute positively to the environment and the next generation.","role": "assistant"}}],"created": 1745386816,"id": "20250423134013be0fab7819a24647","model": "GLM-4-Flash","request_id": "20250423134013be0fab7819a24647","usage": {"completion_tokens": 129,"prompt_tokens": 402,"total_tokens": 531}
}

两次检索的对比

使用CompressingQueryTransformer:

Where did he live?\n\nAnswer using the following information:\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\n\nJohn Doe: An Imaginary Luminary

不使用 CompressingQueryTransformer:

Where did he live?\n\nAnswer using the following information:\nEarly Life and Education\nJohn Doe was born on April 1, 1980, in the quaint town of Fictionville, USA.\nThe only child of Jane and Joe Doe, he exhibited an early inclination towards creativity and innovation.\n\nIn his personal life, John is known to be a private individual.\nHe married his college sweetheart, Emily, and they have two children.\nThe family resides in a sustainable home in Fictionville, where Doe enjoys gardening and mentoring young entrepreneurs."

对比发现,使用CompressingQueryTransformer后,检索的结果相对更准确,占用token也少。

两次最终结果的对比

使用CompressingQueryTransformer:

John Doe, as an Imaginary Luminary, lived in the quaint town of Fictionville, USA. This town served as the backdrop for his early life and education, shaping his formative years and nurturing his early inclination towards creativity and innovation. Being the only child of Jane and Joe Doe, his surroundings in Fictionville would have played a significant role in the development of his personality and talents.

不使用 CompressingQueryTransformer:

John Doe lived in the quaint town of Fictionville, USA. This town, steeped in charm and likely reflective of a nurturing environment, was where he was born on April 1, 1980. As he grew, John continued to reside in Fictionville, where he married his college sweetheart, Emily. The couple has two children, and their family now resides in a sustainable home within the same town. John's deep connection to Fictionville is evidenced by his enjoyment of activities such as gardening and mentoring young entrepreneurs, further indicating his commitment to the local community and his desire to contribute positively to the environment and the next generation.

对比发现,使用CompressingQueryTransformer后,返回的结果即符合需求,占用token也少。


文章转载自:

http://Brvse4E7.wqmyh.cn
http://tgVWuRMu.wqmyh.cn
http://Dp7spfgb.wqmyh.cn
http://pQ633aNu.wqmyh.cn
http://gyXgJ8DN.wqmyh.cn
http://boxXYWNn.wqmyh.cn
http://wLgsxAtr.wqmyh.cn
http://yXDsy5wK.wqmyh.cn
http://0j1soeRa.wqmyh.cn
http://Y40o8Vw1.wqmyh.cn
http://g6JrsGpT.wqmyh.cn
http://VNgzih9e.wqmyh.cn
http://JVJeEqIS.wqmyh.cn
http://ntrsRHP9.wqmyh.cn
http://HqiZ7NSp.wqmyh.cn
http://4Anogw0C.wqmyh.cn
http://mrN1fpVa.wqmyh.cn
http://sLxvtQVU.wqmyh.cn
http://tuYRaENP.wqmyh.cn
http://JOrkmtGV.wqmyh.cn
http://I8Sw0t2o.wqmyh.cn
http://AcocLSBA.wqmyh.cn
http://epVKftAZ.wqmyh.cn
http://r9824RWz.wqmyh.cn
http://p9BYgAgR.wqmyh.cn
http://vc0CPANN.wqmyh.cn
http://b2Ynj37q.wqmyh.cn
http://5GBVeifo.wqmyh.cn
http://mFqxktd2.wqmyh.cn
http://VORdMQg2.wqmyh.cn
http://www.dtcms.com/wzjs/739271.html

相关文章:

  • 公司做网站公司html网页制作期末作业
  • 网站结构分析怎么做网站程序包括数据库和网页程序
  • 怎么免费建个免费的站点专业网站建设哪里有
  • 成都网站建设-中国互联做情人在那个网站
  • 网站前置审批表百度云盘网官网
  • 阜阳网站制作公司去哪找怎么制作公众号模板
  • 无锡前洲行业网站建设电子商务平台的特点
  • 免费建网站软件下载奥特蛋的做网站
  • 用织梦后台修改网站logo百度官方营销推广平台
  • 网站设计赏析免费行情软件网站下载大全爱
  • 凡诺企业网站管理系统东莞市微信网站建设品牌
  • 网站服务器租用平台网站设计不同的原因
  • 上国外网站的dnswordpress怎么添加菜单
  • 怎么拥有网站的所有权什么公司做企业网站
  • 住房和城乡建设部网站办事大厅eclipes 网站开发
  • 东莞网站建设公司招聘信息行业网站建设费用明细
  • 酒店网站建设项目报告书网页动态效果
  • 做淘宝网站需要什么西安app软件开发公司
  • 白银做网站国外网站谷歌seo推广
  • 淘宝优惠券微网站开发北京快速建站模板
  • 响应式网站建设资讯网络营销方案案例
  • thinkphp5做的网站北京网页设计工资
  • 浙江响应式网站建设制作制作宣传片拍摄公司
  • 三大框架网站开发wordpress主题黑糖
  • 电子类网站建设需要多少钱丽水哪里做网站
  • 查询网站dns服务器怎么做网站建设
  • 网站是做流程图中国百强企业
  • 广东网站备案要求江苏省建设工程协会网站
  • 怎么让网站绑定域名电子商务微网站制作
  • 济南在线制作网站html个人网页源码