索引构造与信息检索 让ChatGPT成为Selenium问答助手

乙醇 创建于 about 1 year 之前

最后更新: about 1 year 之前

阅读数: 1381

标题都是chatgpt写的

这是chatgpt为我生成的3个标题,我选了第3个。

  1. 利用 Langchain 和 GPT 实现 Selenium 机器人自动问答
  2. 向量化存储和检索:如何用相似度搜索匹配 Selenium 知识?
  3. 索引构造与信息检索:让 ChatGPT 成为 Selenium 问答助手

之前有很多同学会问我一些有关selenium的问题,因为精力有限,不能一一回答。最近正好chatgpt为代表的生成式ai非常火爆,那么我们能不能训练一个有selenium知识的 机器人帮我回答问题呢?人的时间有限,但是机器人可以一直在线工作,妥妥的劳模了。

经过一番调研,我发现langchain这个库也许可以祝我一臂之力。

整体思路

整理思路很简单,就是gpt是预先训练好的模型,有自己的先见知识,这也是为什么我们问它问题它会给出答案的原因,因为它的模型里就固化了这些知识。然而gpt3模型用的数据应该是截止到2021年的,也就是2年多之前的数据了。尽管selenium总体得带速度不快,但这两年也多多少少发生了一些变化,直接用gpt模型的先见知识可能会造成一些回答不准确的情况。

所以我们可以用gpt的两大能力,而不是先见知识。

  • 推断的能力。给出一些上下文,让gpt总结和推断问题的答案
  • 生成内容的能力

所以现在问题就变成了如何给gpt”灌“入最近的selenium知识?

其实我们可以在gpt的prompt里面加上一些实时的准确的上下文,然后让gpt去根据上下文内容实时的生成问题的答案,比如下面这个prompt

你是selenium问答机器人,你的任务是根据我提供的selenium相关信息来回答用户提出的问题。忘掉你之前的学到的知识,只用我提供的信息去回答。如果问题超出了我提供的信息范围,你就回答不知道。

==============
selenium的一些最新的介绍
...
...
...
==============
问题:selenium是什么?

这样一来任务就变成了如何根据用户的问题搜索相关的selenium知识? 这里就要用到向量化存储和检索了。

向量化存储和检索

先看看chatgpt的解释吧。

Q: 我是一个5岁的小孩,请给我解释一下什么是向量化存储和检索,要让我能看懂

A: 嘿,你好呀!向量化存储和检索是指将文本、图像或其他数据转换成一组数字,并使用这些数字来存储和查找信息。可以把这些数字看成是一个有很多数字的表格,每一个数字代表着这个信息的一个特征。比如说,对于一张图片,可以用数字来表示它的长宽、色彩等等特征。当我们需要查找信息时,可以用相似度来比较数字之间的差距,来找到和我们要查找的信息最相似的那一组数字,从而找到相关的信息。这个技术可以用在很多场合,比如说搜索引擎、推荐系统、图像识别和自然语言处理等等。

其实我们可以简单理解为相似度搜索。

我们要处理的问题是:用户输入问题,然后根据相似度,找到最匹配的一些相关材料,然后返回这些内容。这种工作向量化索引和检索是可以帮我们很好的完成的。

实现流程

这样我们可以把流程梳理清楚了,这里有两个流程,分别是爬一些selenium的数据,向量化之后存到向量化数据库里,可以理解成为是构造索引的过程;以及搜索用户提出的问题,给出相关答案,然后要求gpt生成内容,可以理解为信息检索和生成的过程。

索引构造过程

我随便在selenium的主页拿了3个页面的内容,分别是

使用下面的js脚本可以直接拿到页面内容

document.querySelector('.td-content').textContent

我把内容保存在了se.txt文件里。下面是流程的简单分析

从se.txt中读取内容 -> 切分内容里的文本 -> 调用openai的向量化接口进行向量化 -> 将向量化过的内容保存在向量数据库中

检索及内容生成的过程

调用openapi接口向量化用户问题 -> 在向量数据库中搜索相关答案 -> 将问题和答案合成为prompt发送给gpt3.5 -> 展示gpt返回的内容

代码实现

from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

from langchain.document_loaders import TextLoader
from langchain.embeddings import OpenAIEmbeddings
from langchain.text_splitter import CharacterTextSplitter
from langchain.vectorstores import Chroma
import sys

def create_index():
    loader = TextLoader('./se.txt', encoding='utf8')
    documents = loader.load()
    text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
    docs = text_splitter.split_documents(documents)

    embeddings = OpenAIEmbeddings()
    # db = Chroma.from_documents(docs, embeddings)
    vectordb = Chroma.from_documents(documents=docs, embedding=embeddings, persist_directory='.')
    vectordb.persist()
    vectordb = None

def query(question: str):
    # Load from existing index
    # Now we can load the persisted database from disk, and use it as normal. 
    embeddings = OpenAIEmbeddings()
    vectordb = Chroma(persist_directory='.', embedding_function=embeddings)
    # docs = vectordb.similarity_search(question)
    # print(docs[0].page_content)
    retriever = vectordb.as_retriever(search_kwargs={"k": 1})
    qa = RetrievalQA.from_chain_type(llm=OpenAI(), chain_type="stuff", retriever=retriever)
    res = qa.run(question)
    print("=" * 20)
    print(res)

if __name__ == "__main__":
    cmd = "q"
    if len(sys.argv) > 1:
        cmd = sys.argv[-1]

if cmd in ['c', 'create']:
    create_index()
elif cmd in ['q', 'query']:
    query("how selenium control the browsers")
else:
    print(f"unsupport cmd {cmd}")

下面是chatgpt对上面这段代码的解释

这是一段 Python 代码,其目的是建立一个问答系统,可以对输入的自然语言问题进行回答。具体地,代码中使用了以下库和模块:

  • langchain.chains:其中包含了一个叫做 RetrievalQA 的类,该类封装了一个检索模型和一个答案提取模型,用于回答问题。
  • langchain.llms:其中包含了一个叫做 OpenAI 的类,用于连接 OpenAI API 并执行自然语言任务。
  • langchain.document_loaders:其中包含了一个叫做 TextLoader 的类,用于从本地文件系统中加载文档。
  • langchain.embeddings:其中包含了一个叫做 OpenAIEmbeddings 的类,用于计算文本的向量表示。
  • langchain.text_splitter:其中包含了一个叫做 CharacterTextSplitter 的类,用于将长文本切分为小段落。
  • langchain.vectorstores:其中包含了一个叫做 Chroma 的类,用于构建向量数据库,并提供了向量检索的功能。

代码中的 create_index 函数用于创建向量数据库,具体地,它首先使用 TextLoader 加载一个名为 se.txt 的文本文件,并使用 CharacterTextSplitter 将该文本文件分成多个小段落。然后,它使用 OpenAIEmbeddings 计算每个小段落的向量表示,并使用 Chroma 构建向量数据库,并将其持久化到本地文件系统中。

代码中的 query 函数用于回答问题,具体地,它首先加载之前创建的向量数据库,并使用 Chroma 将输入的自然语言问题转化为向量表示,并在向量数据库中进行检索,找到最相关的文本段落。然后,它使用 RetrievalQA 类的实例对文本段落进行答案提取,并将结果打印输出到控制台。

__main__ 函数中,代码首先解析命令行参数,如果没有参数或者参数为 qquery,则调用 query 函数回答问题;如果参数为 ccreate,则调用 create_index 函数创建向量数据库;否则,打印错误信息。

只能说解释的比我好。另外RetrievalQA这个类实际上是一问一答,并没有多轮对话的能力。

效果

Q: How selenium control the browsers

Using embedded DuckDB with persistence: data will be stored in: .
====================
 Selenium controls web browsers by remotely controlling browser instances and emulating a user's interaction with the browser. It allows users to simulate common activities such as entering text into fields, selecting drop-down values, checking boxes, and clicking links in documents. Additionally, it provides many other controls such as mouse movement, arbitrary JavaScript execution, and more.

如果不自己灌数据的话,这个问题的答案是这样的

Selenium is an open-source testing tool that can control the browsers and automate web-based applications. Selenium uses the WebDriver protocol to control different browsers such as Chrome, Firefox, Safari, Internet Explorer, Edge, and Opera.

When a test script interacts with Selenium's API commands such as findElement(), click(), sendKeys(), etc., it creates a request using the WebDriver protocol. The request is then sent to a browser-specific driver (such as chromedriver.exe for Google Chrome), which interprets the command and sends instructions to the browser through its own API.

The browser executes those instructions and returns results back to the driver. The driver then processes these results and sends them back to Selenium along with any relevant information about errors or exceptions encountered during execution.

In summary, Selenium controls browsers by communicating directly with their respective drivers using protocols specific to those drivers in order to manipulate webpage elements programmatically.

看上去更好一点,但使用的是先见知识,不一定能保证正确性和实时性。不过对于这个问题,chatgpt生成的回答已经是非常完美了。

总结

让chatgpt给我写个总结。

这篇文章提出了使用生成式AI ChatGPT和LangChain库训练一个Selenium知识问答机器人的想法。机器人需要灌入最新的Selenium知识并使用向量化存储和检索来搜索相关材料以回答用户的问题。文章介绍了实现流程,包括爬取Selenium数据、向量化存储和检索、信息检索和生成内容。

这项技术非常适合构建专有领域的知识库,比如法律咨询,医疗咨询等。另外配合一些代码切片的库还可以实现代码生成功能。

总之AI技术可以让我们用非常低的成本实现一些之前很难去搞定的工作,确实挺有意思的。

0

评论

https://ibb.co/MDQkWZyC
https://ibb.co/nNWg0jRs
https://ibb.co/KzmyDWFV
https://ibb.co/Csv0J8dB
https://ibb.co/wZswyC6m
https://ibb.co/SXzSYrqQ
https://ibb.co/J15tMn6
https://ibb.co/6cQDx1Lq
https://ibb.co/PsZXYnHZ
https://ibb.co/4g2KhPpZ
https://ibb.co/601JZWPW
https://ibb.co/7tQD3g4g
https://ibb.co/Cs1VDZGR
https://ibb.co/Zp2440Xz
https://ibb.co/HLqcjt4n
https://ibb.co/cXyRbrxk
https://ibb.co/n8PRjYJL
https://ibb.co/Z6Mt9JZ0
https://ibb.co/xSxQ2RHt
https://ibb.co/Wvw6Kbsn
https://ibb.co/8gC5xmGb
https://ibb.co/3y1pg7w7
https://ibb.co/dsBZF6Jr
https://ibb.co/S7xQQv33
https://ibb.co/RT2fkZqM
https://ibb.co/Qjc60NFx
https://ibb.co/1t0GYjgf
https://ibb.co/99BMc5tQ
https://ibb.co/nskTBCwK
https://ibb.co/fYdLhcD0
https://ibb.co/Zz4kr7ZM
https://ibb.co/Zz7ZGY0R
https://ibb.co/PZkcGyHB
https://ibb.co/fY0kxT3q
https://ibb.co/VcBdsSzM
https://ibb.co/nqpWHtLk
https://ibb.co/LhpkJqPm
https://ibb.co/GQDBx30p
https://ibb.co/MyLXxdbj
https://ibb.co/SDw34Cx5
https://ibb.co/YFB1m4kG
https://ibb.co/7xmXqb83
https://ibb.co/cRN57R7
https://ibb.co/zTY3mRV5
https://ibb.co/vxZVS0G6
https://ibb.co/whSQB5x2
https://ibb.co/351Nb4sq
https://ibb.co/k2zZnHNm
https://ibb.co/BKS6535Z
https://ibb.co/b5W3MXsS
https://ibb.co/bMmW9LGz
https://ibb.co/tpkmHPJJ
https://ibb.co/7xvDgzKx
https://ibb.co/5QRqhRs
https://ibb.co/svtk6Rvy
https://ibb.co/rft9PjVW
https://ibb.co/M5cQ7Dtr
https://ibb.co/6crvXXkW
https://ibb.co/Q3g4J2Lf
https://ibb.co/kspyPY78
https://ibb.co/v43Ty79c
https://ibb.co/C33gpQ6X
https://ibb.co/KxGZPWDp
https://ibb.co/jkZnzysN
https://ibb.co/HJ6Z1mZ
https://ibb.co/390f7HjY
https://ibb.co/xPT0DdD
https://ibb.co/9Hw5Z83r
https://ibb.co/n88fN1qx
https://ibb.co/JWfF2Tmd
https://ibb.co/PzcJZFkX
https://ibb.co/TBXKGbLX
https://ibb.co/XP6RV9M
https://ibb.co/Rp6VfKPq
https://ibb.co/mCpDb9PM
https://ibb.co/N6tLstW0
https://ibb.co/sd6wy49p
https://ibb.co/Rp0Rr7sL
https://ibb.co/RkkBfTKR
https://ibb.co/ttTwqB7
https://ibb.co/7NJXzxxm
https://ibb.co/k6Gzmgrg
https://ibb.co/r2x1YGSZ
https://ibb.co/WWVZT5yH
https://ibb.co/kgQdn7CM
https://ibb.co/8Dbw5yTV
https://ibb.co/PsvvnjZ1
https://ibb.co/kpJ7pth
https://ibb.co/V0KhJhjS
https://ibb.co/G3FbzX9n
https://ibb.co/4n0nbV8h
https://ibb.co/cKWkwQ3p
https://ibb.co/hRRRzy8z
https://ibb.co/391hkg1p
https://ibb.co/XZZ565WY
https://ibb.co/rGnB2Z5k
https://ibb.co/5gfRNv89
https://ibb.co/FkH5jzJb
https://ibb.co/9mhnTD9Z
https://ibb.co/Y7xJ0kYc
https://ibb.co/mFFcnk8B
https://ibb.co/4ny1rxXP
https://ibb.co/FL7zdYDF
https://ibb.co/mVvnLWDp
https://ibb.co/9mcr1FF5
https://ibb.co/chZC7TJw
https://ibb.co/b5QXRTHK
https://ibb.co/mCtDCKVS
https://ibb.co/nMS4ywSm
https://ibb.co/ymnN8KG3
https://ibb.co/0Vc9cHFn
https://ibb.co/B2rF9WNQ
https://ibb.co/jPvs0GVY
https://ibb.co/BFKZNRX
https://ibb.co/prfg0FgD
https://ibb.co/0yT54J7j
https://ibb.co/8LLtvCR6
https://ibb.co/ynQF1rMp
https://ibb.co/rRdnYtTb
https://ibb.co/HTv9Lj2T
https://ibb.co/PsfHS1B6
https://ibb.co/FLvhfpp6
https://ibb.co/SwCNfP7N
https://ibb.co/rRjCGXSC
https://ibb.co/0RScM1jY
https://ibb.co/BKvZzFd6
https://ibb.co/q328kgcS
https://ibb.co/k2W7tb2d
https://ibb.co/HLW3RdSk
https://ibb.co/K8Whpnh
https://ibb.co/k2Vcmrqg
https://ibb.co/sXfvrsy
https://ibb.co/Z6TntSwW
https://ibb.co/z1BP1ny
https://ibb.co/ch6m6c3X
https://ibb.co/B5bJcMK2
https://ibb.co/dsRCVw4c
https://ibb.co/kdNsqkm
https://ibb.co/d4JT5sc7
https://ibb.co/PZRqDQs3
https://ibb.co/twtb33yb
https://ibb.co/HLqcjt4n
https://ibb.co/ycMv6S7S
https://ibb.co/ycNVKsJ5
https://ibb.co/hF6MRbqJ
https://ibb.co/HfsdMN9F
https://ibb.co/zT8RCmYb
https://ibb.co/JwnvR4bF
https://ibb.co/SwVPk89y
https://ibb.co/gF6h9Q3t
https://ibb.co/CKsB5qcc
https://ibb.co/JwVFWb0X
https://ibb.co/3yqdJ0Zs
https://ibb.co/W4qQL1qf
https://ibb.co/YTdtwcmw
https://ibb.co/3YSvRsDt
https://ibb.co/pvFzn6JL
https://ibb.co/jkGfkByX
https://ibb.co/DZJtSsW
https://ibb.co/0RyT9r52
https://ibb.co/d4NRRChn
https://ibb.co/HLFCt968
https://ibb.co/k2YvRJGm
https://ibb.co/cS1HFqmC
https://ibb.co/RTghzhtC
https://ibb.co/cSjWKVHG
https://ibb.co/b5v46XJd
https://ibb.co/4ZW7DB52
https://ibb.co/DD7HRzyX
https://ibb.co/j9Bc09L5
https://ibb.co/Xf42dSR0
https://ibb.co/7xVnsFgR
https://ibb.co/nNwFRBjz
https://ibb.co/Lh1HD1m7
https://ibb.co/4n2sWN3V
https://ibb.co/TsXFGP4
https://ibb.co/MQwnR9T
https://ibb.co/GQ1C8PkK
https://ibb.co/jvmktbw4
https://ibb.co/Rd8KgFg
https://ibb.co/6726749v
https://ibb.co/Gf8TnXKK
https://ibb.co/N2NLkjN8
https://ibb.co/XZksRwts
https://ibb.co/v4cmSt2K
https://ibb.co/kRfJSxS
https://ibb.co/WWc7nS7s
https://ibb.co/PzPmhKLb
https://ibb.co/d47sNY9q
https://ibb.co/Jjm5pTNz
https://ibb.co/kgqYRzXY
https://ibb.co/B5Hyv9fh
https://ibb.co/0yNXjh11
https://ibb.co/RG4W3nrj
https://ibb.co/tTCYHDdK
https://ibb.co/4gtqq3sx
https://ibb.co/xKSfvhw9
https://ibb.co/rfQjx9XD
https://ibb.co/C5v9kGzG
https://ibb.co/HpHVjwnr
https://ibb.co/xKCvyHzK
https://ibb.co/HL8rK4MN
https://ibb.co/C5QSRhgm
https://ibb.co/nsKn4yN6
https://ibb.co/67ZvhqYG
https://ibb.co/KzhYXky4
https://ibb.co/m52Bfxnj
https://ibb.co/60RrVPDR
https://ibb.co/35Ld9yG1
https://ibb.co/KcD663S5
https://ibb.co/yn22yC1r
https://ibb.co/8DvJ4ZDd
https://ibb.co/pjPYNNqP
https://ibb.co/G3QChHMm
https://ibb.co/c07m1M0
https://ibb.co/S7XVxvNB
https://ibb.co/fYjLsSG9
https://ibb.co/2YMGT29J
https://ibb.co/mF1K8Y2b
https://ibb.co/bf2P3Rk
https://ibb.co/LXNSsmNS
https://ibb.co/v4yBVc3x
https://ibb.co/7JKPBDSc
https://ibb.co/4wSKv05T
https://ibb.co/hJXz0Cc9
https://ibb.co/DfZN9qVf
https://ibb.co/nqnN2b9L
https://ibb.co/fzqB1TJD
https://ibb.co/gkD5fpF
https://ibb.co/rGjChVYD
https://ibb.co/SDHndBkQ
https://ibb.co/hRp1ZRQq
https://ibb.co/Xk5wt51C
https://ibb.co/bgMRDgJn
https://ibb.co/MD59SDdM
https://ibb.co/Q3Qw3dRb
https://ibb.co/ZpS9Xz16
https://ibb.co/3mDfVGtJ
https://ibb.co/7dDPsZcC
https://ibb.co/3yH5SrZh
https://ibb.co/xqRxZmB6
https://ibb.co/qLj0gm1Q
https://ibb.co/ZR09BByD
https://ibb.co/6R4TW7mV
https://ibb.co/HftZ4r4K
https://ibb.co/r24qhjNq
https://ibb.co/99yw0RwW
https://ibb.co/LhxwwC8L
https://ibb.co/XfFBr1H9
https://ibb.co/JFnK5CvN
https://ibb.co/8Dwz4qq7
https://ibb.co/ZRWRRj6C
https://ibb.co/LDct6HCK
https://ibb.co/vvhLB1F7
https://ibb.co/qLHj7G0L
https://ibb.co/qZ7BH2J
https://ibb.co/wZtH83bZ
https://ibb.co/DHC88Ln0
https://ibb.co/fGSyRwcc
https://ibb.co/n8znHtTB
https://ibb.co/rGPLMWBz
https://ibb.co/HLX3wdjK
https://ibb.co/PZzhVp8Z
https://ibb.co/p6JkPjKP
https://ibb.co/chhNHpT8
https://ibb.co/B29NGP6W
https://ibb.co/HTy4RznB
https://ibb.co/p5JXpX3
https://ibb.co/8gy777fL
https://ibb.co/Kz5ctLNp
https://ibb.co/yFXhJ8fr
https://ibb.co/Z1tk9MS1
https://ibb.co/Dg876mbM
https://ibb.co/7xbhpsRn
https://ibb.co/W4jtMngZ
https://ibb.co/jZ19Fd4J
https://ibb.co/wFFFwZgt
https://ibb.co/pvjQ5YTb
https://ibb.co/svRNW5mB
https://ibb.co/7JDZvztG
https://ibb.co/6Rkw54DM
https://ibb.co/v4vJ7Mts
https://ibb.co/2016VmXM
https://ibb.co/DPKrxCbh
https://ibb.co/KzBK6tjv
https://ibb.co/SXrQLkVw
https://ibb.co/k6w9Xd4K
https://ibb.co/s98CmYGB
https://ibb.co/FqLV4hG5
https://ibb.co/HTrW62GX
https://ibb.co/WWcSkBP5
https://ibb.co/x82Jj7P8
https://ibb.co/QFLJyH2T
https://ibb.co/WNxTCJq3
https://ibb.co/BHbx8KQr
https://ibb.co/BVDz1pgt
https://ibb.co/rG6YNWmj
https://ibb.co/RkrQpNwV
https://ibb.co/p6Stnj1F
https://ibb.co/P8YSmB2
https://ibb.co/5hdth8h0
https://ibb.co/dwwvpKJ0
https://ibb.co/qLrqzC27
https://ibb.co/Cdg3Pfm
https://ibb.co/v6Vy3g0c
https://ibb.co/tprYZG91
https://ibb.co/N2Jtzstx
https://ibb.co/8LRpJcz4
https://ibb.co/j9wZ38qv
https://ibb.co/MxG3mtMy
https://ibb.co/7NykqZ0w
https://ibb.co/JjPQPVpJ
https://ibb.co/Fk1h2cJF
https://ibb.co/ch7XK7BM
https://ibb.co/S4RVjNBS
https://ibb.co/spn5LdTm
https://ibb.co/Gf4w1hdW
https://ibb.co/pBpmmnnb
https://ibb.co/gMWrtRy7
https://ibb.co/7NW0s2L1
https://ibb.co/zT0ycXcJ
https://ibb.co/kgDWJMfb
https://ibb.co/v4SMXds8
https://ibb.co/1yCLy75
https://ibb.co/67ky2s2k
https://ibb.co/PzMVzdTL
https://ibb.co/DD6TwvRB
https://ibb.co/ycfWZ55X
https://ibb.co/LDwwY85f
https://ibb.co/4R1Ps7bb
https://ibb.co/XfpxJhxH
https://ibb.co/Hf7yc7fm
https://ibb.co/W4v4nK5Z
https://ibb.co/99153qvn
https://ibb.co/q3TcGD4y
https://ibb.co/XxfYTnmX
https://ibb.co/pr0vFrsM
https://ibb.co/Dq1D0b6
https://ibb.co/Df3DBFNM
https://ibb.co/vxhXWRD0
https://ibb.co/208gsHNv
https://ibb.co/RTY8zrwF
https://ibb.co/Y7JBDhXy
https://ibb.co/PZYfzQX7
https://ibb.co/WptkxnJ9
https://ibb.co/ZwW5Zzb
https://ibb.co/bMPRNwYd
https://ibb.co/TDdryjbm
https://ibb.co/S7m2V24P
https://ibb.co/Rkqh2gxL
https://ibb.co/bM7D0kpq
https://ibb.co/fYwfYLC1
https://ibb.co/ycnFFX7v
https://ibb.co/bRLXQgfp
https://ibb.co/FbyHYTKv
https://ibb.co/JWsVphF0
https://ibb.co/CKj3ZM4L
https://ibb.co/QFGK63hL
https://ibb.co/jPWTP8qk
https://ibb.co/HDQMt8df
https://ibb.co/rKvZ682b
https://ibb.co/nMFsdRcW
https://ibb.co/21cJtfRX
https://ibb.co/vvwz5gh3
https://ibb.co/Fjnrkvm
https://ibb.co/35KbkFd5
https://ibb.co/Q5Z8c3y
https://ibb.co/gbyP2Qn1
https://ibb.co/B21nTRnT
https://ibb.co/vvY4Jv05
https://ibb.co/Jj47jxz1
https://ibb.co/cckgg5Jh
https://ibb.co/6R3zb4Qm
https://ibb.co/1GVRLzvQ
https://ibb.co/r2prQ8pw
https://ibb.co/7xs0SJCT
https://ibb.co/xbjxrL9
https://ibb.co/0RKyc5rH
https://ibb.co/fdvpQSVF
https://ibb.co/j9fjwZ7T
https://ibb.co/7NYFrmGt
https://ibb.co/BHxC5NvY
https://ibb.co/v62Zd6JD
https://ibb.co/PLRrRmk
https://ibb.co/HfLYSSBF
https://ibb.co/mFhjRj20
https://ibb.co/yc5zmTxr
https://ibb.co/1tFqQ83m
https://ibb.co/mVBNsTd9
https://ibb.co/GQw999yT
https://ibb.co/2GY8FTT
https://ibb.co/qMj0bYk0
https://ibb.co/7hzk2QJ
https://ibb.co/7xTRsfvx
https://ibb.co/fY0Zk7L8
https://ibb.co/T5pY8HH
https://ibb.co/8L2hbr6f
https://ibb.co/3mrCFvKw
https://ibb.co/rKSDm1WH
https://ibb.co/60R9p5LH
https://ibb.co/NgmvzcLp
https://ibb.co/7d9xqGsx
https://ibb.co/svFwKJHq
https://ibb.co/0pXGgV4g
https://ibb.co/Xkj8xFvf
https://ibb.co/cS2gN0gz
https://ibb.co/5XXcyNPZ
https://ibb.co/v6zJzzs7
https://ibb.co/ymKtM2hr
https://ibb.co/ccNDcx4y
https://ibb.co/JRdYzf2X
https://ibb.co/xSd1zmRT
https://ibb.co/JRfTT15c
https://ibb.co/zhYB4Mgv
https://ibb.co/ZRx67KVj
https://ibb.co/n8jptMnm
https://ibb.co/rfQGJmht
https://ibb.co/7xCK6Zyh
https://ibb.co/5gdtDsHY
https://ibb.co/bMyFKyR5
https://ibb.co/tpq6mvcf
https://ibb.co/WvDMPtNS
https://ibb.co/PzbsWbWy
https://ibb.co/4RWkbYH9
https://ibb.co/v4gdxHDX
https://ibb.co/JWTFLxTX
https://ibb.co/5htCsGXP
https://ibb.co/ZznWy76K
https://ibb.co/gLdc8yw3
https://ibb.co/gMtYtwr6
https://ibb.co/B2Jrx5KS
https://ibb.co/NnGtdRHj
https://ibb.co/SD4t2t0Q
https://ibb.co/bRzgjXWR
https://ibb.co/9mDrkd19
https://ibb.co/tpF0mB2n
https://ibb.co/3Y78yrCf
https://ibb.co/VcvfH21m
https://ibb.co/N6RGcW9M
https://ibb.co/Nn7cTPmm
https://ibb.co/PG7cm2S2
https://ibb.co/Q3cPr5ts
https://ibb.co/WWG3W5Wq
https://ibb.co/RTQvhZRH
https://ibb.co/FkR8DS2M
https://ibb.co/hxkw9CYP
https://ibb.co/391JGrYy
https://ibb.co/MDTyKGMK
https://ibb.co/jPBy60g9
https://ibb.co/jPgW0Dbh
https://ibb.co/jZVTwbWV
https://ibb.co/GQn754Hw
https://ibb.co/Y4k6Dx46
https://ibb.co/21yMbRp2
https://ibb.co/XZCkPYf4
https://ibb.co/5grVhjLM
https://ibb.co/k2DQ73Bt
https://ibb.co/g0gxR9p
https://ibb.co/Kjq98jrx
https://ibb.co/3y0KSHj4
https://ibb.co/Nd5jhQPK
https://ibb.co/XZ0mLPwS
https://ibb.co/xSs7vBvY
https://ibb.co/jkQJC5xd
https://ibb.co/Y4dF7gNX
https://ibb.co/G45g2kvq
https://ibb.co/KpzDF0p0
https://ibb.co/xKmcfqL3
https://ibb.co/DfGJzFcF
https://ibb.co/zVhSk7Lb
https://ibb.co/YTpjNydb
https://ibb.co/v4qgkCpg
https://ibb.co/CK1npYym
https://ibb.co/Jwcwy9Gz
https://ibb.co/0yTCq926
https://ibb.co/5x9D31tt
https://ibb.co/C3CTyCQk
https://ibb.co/prNgg6qG
https://ibb.co/yF50twWG
https://ibb.co/5hxrZQPy
https://ibb.co/wt3wQFj
https://ibb.co/sdkHWg5K
https://ibb.co/5X1s1h7D
https://ibb.co/KpzDF0p0
https://ibb.co/bgTdQW1g
https://ibb.co/tTVrh8LC
https://ibb.co/Xk4VFhF6
https://ibb.co/Fb5LKtyB
https://ibb.co/4n8GxpQk
https://ibb.co/h1HDbmkW
https://ibb.co/jvDM0x4w
https://ibb.co/zVMKmCtx
https://ibb.co/mVDmkQ9v
https://ibb.co/TMQr6Hhq
https://ibb.co/DD0Dn7K1
https://ibb.co/szxQx00
https://ibb.co/YT7Bknm5
https://ibb.co/jPz3DjX5
https://ibb.co/Lh9pkQZv
https://ibb.co/Df4Y75NG
https://ibb.co/5gqzzygS
https://ibb.co/vxYzr99P
https://ibb.co/Qvr2yyD8
https://ibb.co/cKxHHkPZ
https://ibb.co/twBysQ4d
https://ibb.co/s94jvY7T
https://ibb.co/h1HDbmkW
https://ibb.co/v4T6tHzx
https://ibb.co/pBNhPgwy
https://ibb.co/JW1qFpkN
https://ibb.co/rGf7wBDm
https://ibb.co/8gpgSZqV
https://ibb.co/6SQ64my
https://ibb.co/wNfdm19K
https://ibb.co/n4QVZqk
https://ibb.co/Kz97bvMn
https://ibb.co/b5Y2jDwm
https://ibb.co/60cs0HRT
https://ibb.co/xKm3nZTN
https://ibb.co/JVFk9sk
https://ibb.co/N2thDnNs
https://ibb.co/Fq8GPX6W
https://ibb.co/xSKgfgdF
https://ibb.co/FktwMzCL
https://ibb.co/XZncZcVk
https://ibb.co/gZ21CXxn
https://ibb.co/TCgBtgr
https://ibb.co/YTtgSxhy
https://ibb.co/3Y1FRpqB
https://ibb.co/PvY6Xjzk
https://ibb.co/jv4TgXzx
https://ibb.co/YBVy9tXb
https://ibb.co/R4JWqtK2
https://ibb.co/Dfmr5Xpw
https://ibb.co/WWMfPBdp
https://ibb.co/bg473MLZ
https://ibb.co/0ygYY88L
https://ibb.co/Mdj5L7c
https://ibb.co/1GS7ZzJd
https://ibb.co/qFgHctZL
https://ibb.co/xk64Pwd
https://ibb.co/7N8HsQGD
https://ibb.co/HT2KR0Pd
https://ibb.co/wrKZqg8d
https://ibb.co/RT2Nb7PD
https://ibb.co/q3p1dJXw
https://ibb.co/mCp8tzLZ
https://ibb.co/zTPkxWsT
https://ibb.co/hF7Fk7bj
https://ibb.co/BVzhj0RS
https://ibb.co/kVsVZzRB
https://ibb.co/RTB61rWK
https://ibb.co/r23N4j4S
https://ibb.co/q3JMBhmR
https://ibb.co/ym2DJhMG
https://ibb.co/QFCcsxh0
https://ibb.co/yn4FRhRw
https://ibb.co/FkyFPt68
https://ibb.co/bMVCH8Rb
https://ibb.co/39Kfn9FG
https://ibb.co/Qv3NYdFm
https://ibb.co/jPpwq2kV
https://ibb.co/MD1SS6qf
https://ibb.co/KpyVRj47
https://ibb.co/PvkcM9sG
https://ibb.co/FLcVwNS4
https://ibb.co/xKThSJVT
https://ibb.co/svpB2Ywg
https://ibb.co/60g4bfqs
https://ibb.co/spv6NN1y
https://ibb.co/Gv9n7F74
https://ibb.co/HprnjKp7
https://ibb.co/zTfNf2yj
https://ibb.co/Z4fx0Bt
https://ibb.co/VcJ6Bd49
https://ibb.co/TBq6NwYG
https://ibb.co/TBcnH14Y
https://ibb.co/N62JmYLL
https://ibb.co/v6DkCYV7
https://ibb.co/9mTMZpMt
https://ibb.co/bf4ztbV
https://ibb.co/5gxNSm43
https://ibb.co/QFQK11Jq
https://ibb.co/p6LpQ116
https://ibb.co/gM88Z3cK
https://ibb.co/qMx4PWCQ
https://ibb.co/wZX593nm
https://ibb.co/tTQBVBSy
https://ibb.co/zhBnRMNX
https://ibb.co/wNtvZbbX
https://ibb.co/cKHSQHKm
https://ibb.co/dsd1G9Mv
https://ibb.co/Lh2LDgvX
https://ibb.co/cKgLx8xp
https://ibb.co/0yh25gHT
https://ibb.co/whM7t4Gg
https://ibb.co/7dcGW2Nm
https://ibb.co/bM4201pw
https://ibb.co/C30TBF20
https://ibb.co/TDTW7zSp
https://ibb.co/5XR1KGj4
https://ibb.co/s9MGV4n2
https://ibb.co/b5Pyk5m2
https://ibb.co/Wvd9CCN2
https://ibb.co/B2ppkq6F
https://ibb.co/B5cCqVyk
https://ibb.co/tTqkHPWB
https://ibb.co/Kcd5bfBf
https://ibb.co/S41SVvqy
https://ibb.co/7NnPh42R
https://ibb.co/5gZWf2Yg
https://ibb.co/S7BFqF9r
https://ibb.co/B5WTBysb
https://ibb.co/cSSWwFnN
https://ibb.co/Z6MNtYWS
https://ibb.co/mVmytHhy
https://ibb.co/TBnvwxWd
https://ibb.co/gFQ5GmHG
https://ibb.co/zVgZdBNf
https://ibb.co/B29GsDPh
https://ibb.co/9msZ4bpj
https://ibb.co/1GBwXzn1
https://ibb.co/CsDspGHL
https://ibb.co/NgkhDBwB
https://ibb.co/ks6SHnBd
https://ibb.co/FLzPzXKS
https://ibb.co/23cv83VW
https://ibb.co/wNczxzhs
https://ibb.co/HDXswfHs
https://ibb.co/DN3syPZ
https://ibb.co/XZYQG3Db
https://ibb.co/gbKPZ9VX
https://ibb.co/gMX0KdBX
https://ibb.co/GvBwM9gh
https://ibb.co/JwzhTmn7
https://ibb.co/XxpLJtFb
https://ibb.co/Z6CQdLf7
https://ibb.co/wNNPcXM8
https://ibb.co/Vc117jfL
https://ibb.co/PvPpxFx1
https://ibb.co/1Y3vFLQJ
https://ibb.co/nqHkVH4Z
https://ibb.co/VcJTDVCT
https://ibb.co/1JftWV9R
https://ibb.co/bjmxX3BL
https://ibb.co/NdGrGDLF
https://ibb.co/JWFwfWRw
https://ibb.co/dwGNkwwc
https://ibb.co/LwpGnkY
https://ibb.co/JwRwxQqW
https://ibb.co/rKvNGfcT
https://ibb.co/PZ2FJb4B
https://ibb.co/TMgcPT8v
https://ibb.co/ymKnHbsp
https://ibb.co/PzfS7vP7
https://ibb.co/Lz8W1C3K
https://ibb.co/5XNdRXWX
https://ibb.co/Rk9MB08T
https://ibb.co/Y7xWsG4B
https://ibb.co/hJW0NrGR
https://ibb.co/8nNC8nDM
https://ibb.co/zhSZyghJ
https://ibb.co/TDvBKz4b
https://ibb.co/S4TZXB9m
https://ibb.co/LXfvX21S
https://ibb.co/pBR6TDMs
https://ibb.co/8DdvDnQ4
https://ibb.co/Mk1mmR78
https://ibb.co/35wyNhS2
https://ibb.co/LDkvBRKt
https://ibb.co/vvk1rxPB
https://ibb.co/nN3vb5vX
https://ibb.co/DgkLJSfT
https://ibb.co/RGv9TgLn
https://ibb.co/kgqKDnd3
https://ibb.co/s9hJ9kZR
https://ibb.co/YBym0Dmn
https://ibb.co/DD9RwfqP
https://ibb.co/zWjVN5ht
https://ibb.co/x8msFgNv
https://ibb.co/ns1yJ9zy
https://ibb.co/B2w39nQG
https://ibb.co/JwD6pzLS
https://ibb.co/QjmdvLN2
https://ibb.co/RTkV9nZ7
https://ibb.co/0RSsCJVj
https://ibb.co/SCBtGKy
https://ibb.co/N6M8N4nZ
https://ibb.co/0yxBHfcQ
https://ibb.co/fY9FStQd
https://ibb.co/LzKCYF0w
https://ibb.co/fzYTfnQR
https://ibb.co/KprdsqRy
https://ibb.co/4ZbV0GyJ
https://ibb.co/FcW8tXB
https://ibb.co/Y7NLFf1H
https://ibb.co/Hf291Pmp
https://ibb.co/0yxhfP61
https://ibb.co/8gX2N9MP
https://ibb.co/FLjmSq8F
https://ibb.co/TB5b6My7
https://ibb.co/k6ys1Wg9
https://ibb.co/jZZMmzFq
https://ibb.co/ccbDPNhr
https://ibb.co/LXTH5p9w
https://ibb.co/QFF6g72L
https://ibb.co/DDHG5TCj
https://ibb.co/4nDXNkpt
https://ibb.co/B2FQbJXk
https://ibb.co/L32JxDF
https://ibb.co/7N48td4j
https://ibb.co/fV2jBv8N
https://ibb.co/NgYtp5vv
https://ibb.co/PGTgDNdy
https://ibb.co/6GHHFs7
https://ibb.co/NdNJJtff
https://ibb.co/vvQ68C6g
https://ibb.co/Z6YPsbyN
https://ibb.co/zhwHwCgy
https://ibb.co/chy6tnjx
https://ibb.co/mVppZWbS
https://ibb.co/v6XTjnVc
https://ibb.co/cXVdRxg1
https://ibb.co/v6XRnKbF
https://ibb.co/DfTLk7Ws
https://ibb.co/yFfnSL4W
https://ibb.co/7xpP1Tdf
https://ibb.co/1YKxXVCT
https://ibb.co/VcrYBZyf
https://ibb.co/B5mR37cH
https://ibb.co/4wGgHjxk
https://ibb.co/PsrKDhwc
https://ibb.co/BHV0wyB6
https://ibb.co/39dMQB28
https://ibb.co/WpsVKN0Z
https://ibb.co/zhYGkqjL
https://ibb.co/YB6QMBvr
https://ibb.co/YVQS85y
https://ibb.co/qtyGRS2
https://ibb.co/kVyGPHtr
https://ibb.co/fYFtfZsZ
https://ibb.co/yLqygt6
https://ibb.co/TBHXrt6Y
https://ibb.co/x86rSHc4
https://ibb.co/1GL8Fxgx
https://ibb.co/zHmTTpKc
https://ibb.co/GQTPhfF6
https://ibb.co/0yVt4FPF
https://ibb.co/cKjPWJcw
https://ibb.co/39By0jBR
https://ibb.co/mFFP00MC
https://ibb.co/23zS7wct
https://ibb.co/BVp2Z6zp
https://ibb.co/p63MDnNN
https://ibb.co/gb38xCvn
https://ibb.co/yx5KPcb
https://ibb.co/8gNnF81B
https://ibb.co/gM3Mf66Z
https://ibb.co/cBsrJh9
https://ibb.co/Rkx9bTkz
https://ibb.co/1fxrrHZ3
https://ibb.co/y24dXcm
https://ibb.co/SZdrNN5
https://ibb.co/s9C4Dyfv
https://ibb.co/GvQR9gD0
https://ibb.co/VYJwSzbN
https://ibb.co/tMkNL49Z
https://ibb.co/LzNJBWjd
https://ibb.co/KdN3Dvs
https://ibb.co/sJdFQm8Z
https://ibb.co/KjMxSJJt
https://ibb.co/tp3Qfyxq
https://ibb.co/Sw3TrGkZ
https://ibb.co/N65Ddv4z
https://ibb.co/273b7H8n
https://ibb.co/LdGD030B
https://ibb.co/d0tRf7QZ
https://ibb.co/8DRjk0m4
https://ibb.co/B5K5zfs9
https://ibb.co/Vc0VQ7cr
https://ibb.co/KjYyWsG7
https://ibb.co/L2RCG5Q
https://ibb.co/VpMd55ty
https://ibb.co/fdM2s0Jy
https://ibb.co/fzyd3fbC
https://ibb.co/ccG1H8J8
https://ibb.co/67vtQNdm
https://ibb.co/Fbq1cGxn
https://ibb.co/prypr50S
https://ibb.co/KxMKrGT9
https://ibb.co/23PyQmF0
https://ibb.co/h5Ygxvb
https://ibb.co/5xMyr1QR
https://ibb.co/zHG25BC2
https://ibb.co/w5hwFVk
https://ibb.co/TxdDsbmx
https://ibb.co/J8qc4Qz
https://ibb.co/pjpHMXdd
https://ibb.co/XfYLCbjV
https://ibb.co/cKKXMp1c
https://ibb.co/n8w3V9n4
https://ibb.co/p6CZZYPg
https://ibb.co/9khKgy78
https://ibb.co/1tWjRHdx
https://ibb.co/tPvfJnNH
https://ibb.co/HfXNRN4B
https://ibb.co/fzZqypMF
https://ibb.co/3510h9p8
https://ibb.co/FkdRN4jn
https://ibb.co/TxzR7zrR
https://ibb.co/BH6pLJsK
https://ibb.co/k68v0hnT
https://ibb.co/23wVfYMt
https://ibb.co/0pr9Gyjw
https://ibb.co/8LBgjKxP
https://ibb.co/MyqY6M61
https://ibb.co/sp0fZS69
https://ibb.co/21mQF2Rc
https://ibb.co/fdhhFrmP
https://ibb.co/ZzyTWbPP
https://ibb.co/ZRcz421Y
https://ibb.co/1f3x6LWj
https://ibb.co/GQvPd9HN
https://ibb.co/sJD990ZM
https://ibb.co/xTLfWYF
https://ibb.co/ycxg3FKN
https://ibb.co/DHyM3YwL
https://ibb.co/XrMg95PF
https://ibb.co/Ngc0RKkV
https://ibb.co/5hvDxZZR
https://ibb.co/dJ0SX58W
https://ibb.co/Mx91T5dV
https://ibb.co/Kxhx5q9N
https://ibb.co/XxZFtFm1
https://ibb.co/XrjzsXhB
https://ibb.co/BHzXzkgC
https://ibb.co/B5cRwDtf
https://ibb.co/RkCyMxkf
https://ibb.co/x8HfdB6J
https://ibb.co/bMVSM1LG
https://ibb.co/ZRpZmWxB
https://ibb.co/FRQhvCz
https://ibb.co/yFSWt5mm
https://ibb.co/5xMS36ZG
https://ibb.co/NnFTs098
https://ibb.co/FL2TrzZw
https://ibb.co/whqcj1Wh
https://ibb.co/DfdCGGsK
https://ibb.co/9mj4vfBw
https://ibb.co/TxLc4czv
https://ibb.co/MDLzJqq4
https://ibb.co/v43QNkpV
https://ibb.co/LdcSC7JD
https://ibb.co/W4Lv72P8
https://ibb.co/TM2WCqxY
https://ibb.co/gZy4p8vc
https://ibb.co/Gvzyh81Z
https://ibb.co/Lm2fDQm
https://ibb.co/Vcp4vYdb
https://ibb.co/5hnG44MQ
https://ibb.co/8nbRzvtQ
https://ibb.co/RGjfS2p9
https://ibb.co/YBscfbSX
https://ibb.co/8LvwhJYt
https://ibb.co/gFyPGByp
https://ibb.co/dJ0SX58W
https://ibb.co/BHkFFgZk
https://ibb.co/fz3pWV82
https://ibb.co/jPc9dmFC
https://ibb.co/FkFR8Gtx
https://ibb.co/0jcBH2M2
https://ibb.co/hJpDXP88
https://ibb.co/1wBt5PF
https://ibb.co/wZwwyLwS
https://ibb.co/8LnF204C
https://ibb.co/rGtqPxkM
https://ibb.co/CKr2h0Cw
https://ibb.co/5XhRSdhm
https://ibb.co/7ttx15Hs
https://ibb.co/k6Qx7Gd4
https://ibb.co/LXh5rgBv
https://ibb.co/bgLGZtbw
https://ibb.co/FLwKTpS8
https://ibb.co/Y7QLVT0D
https://ibb.co/tTHQVCLV
https://ibb.co/35wG9QhN
https://ibb.co/0V1fWy1M
https://ibb.co/XZWrSGRn
https://ibb.co/ynT0hHgq
https://ibb.co/kV4JTCW2
https://ibb.co/wFqYckGh
https://ibb.co/YBxgxZHB
https://ibb.co/wrxCcCPP
https://ibb.co/jPHdMzdx
https://ibb.co/3Yzjt34N
https://ibb.co/G4G3q5Np
https://ibb.co/fdpxBH4d
https://ibb.co/SX9pstSJ
https://ibb.co/dsMZK4Zq
https://ibb.co/JjZJpDNj
https://ibb.co/tMqwprtV
https://ibb.co/TBy7PYYf
https://ibb.co/yFc4nt5R
https://ibb.co/wt3wQFj
https://ibb.co/GfT1hWyF
https://ibb.co/qMqWgQBR
https://ibb.co/xSLvz0nh
https://ibb.co/v4M6k80k
https://ibb.co/Y7NxFzj8
https://ibb.co/bMY9m3Yc
https://ibb.co/jvwhFKyT
https://ibb.co/d4TZ5NGz
https://ibb.co/C3LCx846

兰州开发票 发表于1 day之前