LangChain框架实战:构建个人专属知识库教程
将应用部署到云服务器(如 AWS、Azure 或 Google Cloud),并设置监控工具(如 Prometheus 或 Loggly)跟踪 API 使用情况和性能。使用 Flask 或 FastAPI 构建后端,前端通过 HTTP 请求与后端交互。捕获 API 可能返回的错误(如认证失败、超限等),并实现重试机制。根据用户反馈调整模型参数、改进上下文管理逻辑,或升级到更高版本的模型(如 GPT
安装LangChain及相关依赖
确保Python环境(建议3.8+),安装LangChain核心库及常用扩展:
pip install langchain openai faiss-cpu tiktoken
若需使用本地模型(如Llama2),需额外安装llama-cpp-python
:
pip install llama-cpp-python
准备知识库数据
将文档(PDF/TXT/Markdown等)统一存放于./data
目录,支持以下预处理方式:
- 使用
UnstructuredFileLoader
拆分文本为片段 - 对长文本按固定长度分块(建议500-1000字符)
- 通过
RecursiveCharacterTextSplitter
保留上下文关联
示例代码:
from langchain.document_loaders import DirectoryLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
loader = DirectoryLoader('./data', glob="**/*.txt")
docs = loader.load()
text_splitter = RecursiveCharacterTextSplitter(chunk_size=800, chunk_overlap=100)
chunks = text_splitter.split_documents(docs)
构建向量数据库
选择嵌入模型(OpenAI或HuggingFace)和向量数据库(FAISS/Chroma):
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import FAISS
embeddings = OpenAIEmbeddings(model="text-embedding-ada-002")
db = FAISS.from_documents(chunks, embeddings)
db.save_local("my_vectorstore")
设计检索增强生成链
结合检索器与LLM(如GPT-3.5或本地模型):
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI
retriever = db.as_retriever(search_kwargs={"k": 3})
qa_chain = RetrievalQA.from_chain_type(
llm=OpenAI(temperature=0),
chain_type="stuff",
retriever=retriever
)
实现交互式查询
添加记忆功能支持多轮对话:
from langchain.chains import ConversationChain
from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory()
conversation = ConversationChain(llm=OpenAI(), memory=memory)
while True:
query = input("User: ")
if query.lower() == 'exit':
break
result = qa_chain({"query": query})
print("AI:", result["result"])
高级优化技巧
-
混合检索:结合关键词搜索与语义搜索
from langchain.retrievers import BM25Retriever, EnsembleRetriever bm25_retriever = BM25Retriever.from_documents(chunks) ensemble_retriever = EnsembleRetriever( retrievers=[bm25_retriever, db.as_retriever()], weights=[0.4, 0.6] )
-
查询重写:使用LLM优化原始查询
from langchain.chains.query_constructor.base import AttributeInfo metadata_field_info = [AttributeInfo(name="source", description="文档来源", type="string")]
-
分级响应:设置置信度阈值,低置信时要求用户澄清
部署方案
-
本地API服务:使用FastAPI封装
from fastapi import FastAPI app = FastAPI() @app.post("/ask") def ask_question(question: str): return qa_chain.run(question)
-
Gradio可视化:快速构建DEMO界面
import gradio as gr demo = gr.Interface(fn=qa_chain.run, inputs="text", outputs="text") demo.launch()
-
Docker容器化:制作生产环境镜像
FROM python:3.9 COPY . /app WORKDIR /app RUN pip install -r requirements.txt CMD ["uvicorn", "main:app", "--host", "0.0.0.0"]
性能监控指标
- 检索召回率@K
- 响应延迟百分位(P90/P99)
- 每次查询的Token消耗
- 用户满意度评分(可集成反馈按钮)
常见问题排查:
- 处理OOV词:添加自定义术语表
- 解决幻觉回答:设置
max_tokens
和温度参数 - 优化分块策略:测试不同chunk_size对结果的影响
https://github.com/tw543/n/issues/301
https://github.com/yu654r/7/issues/302
https://github.com/tw543/n/issues/300
https://github.com/yu654r/7/issues/301
https://github.com/tw543/n/issues/299
https://github.com/yu654r/7/issues/300
https://github.com/tw543/n/issues/298
https://github.com/yu654r/7/issues/299
https://github.com/tw543/n/issues/297
https://github.com/yu654r/7/issues/298
https://github.com/tw543/n/issues/296
https://github.com/yu654r/7/issues/297
https://github.com/tw543/n/issues/295
https://github.com/yu654r/7/issues/296
https://github.com/tw543/n/issues/294
https://github.com/yu654r/7/issues/295
https://github.com/tw543/n/issues/293
https://github.com/yu654r/7/issues/294
https://github.com/tw543/n/issues/292
https://github.com/yu654r/7/issues/293
https://github.com/tw543/n/issues/291
https://github.com/yu654r/7/issues/292
https://github.com/tw543/n/issues/290
https://github.com/yu654r/7/issues/291
https://github.com/tw543/n/issues/289
https://github.com/yu654r/7/issues/290
https://github.com/tw543/n/issues/288
https://github.com/yu654r/7/issues/289
https://github.com/tw543/n/issues/287
https://github.com/yu654r/7/issues/288
https://github.com/tw543/n/issues/286
https://github.com/yu654r/7/issues/287
https://github.com/tw543/n/issues/285
https://github.com/yu654r/7/issues/286
https://github.com/tw543/n/issues/284
https://github.com/yu654r/7/issues/285
https://github.com/tw543/n/issues/283
https://github.com/yu654r/7/issues/284
https://github.com/tw543/n/issues/282
https://github.com/yu654r/7/issues/283
https://github.com/tw543/n/issues/281
https://github.com/yu654r/7/issues/282
https://github.com/tw543/n/issues/280
https://github.com/yu654r/7/issues/281
https://github.com/tw543/n/issues/279
https://github.com/yu654r/7/issues/280
https://github.com/tw543/n/issues/278
https://github.com/yu654r/7/issues/279
https://github.com/tw543/n/issues/277
https://github.com/yu654r/7/issues/278
https://github.com/tw543/n/issues/276
https://github.com/yu654r/7/issues/277
https://github.com/tw543/n/issues/275
https://github.com/yu654r/7/issues/276
https://github.com/tw543/n/issues/274
https://github.com/yu654r/7/issues/275
https://github.com/tw543/n/issues/273
https://github.com/yu654r/7/issues/274
https://github.com/tw543/n/issues/272
https://github.com/yu654r/7/issues/273
https://github.com/tw543/n/issues/271
https://github.com/yu654r/7/issues/272
https://github.com/tw543/n/issues/270
https://github.com/yu654r/7/issues/271
https://github.com/tw543/n/issues/269
https://github.com/yu654r/7/issues/270
https://github.com/tw543/n/issues/268
https://github.com/yu654r/7/issues/269
https://github.com/tw543/n/issues/267
https://github.com/yu654r/7/issues/268
https://github.com/tw543/n/issues/266
https://github.com/yu654r/7/issues/267
https://github.com/tw543/n/issues/265
https://github.com/yu654r/7/issues/266
https://github.com/tw543/n/issues/264
https://github.com/yu654r/7/issues/265
https://github.com/tw543/n/issues/263
https://github.com/yu654r/7/issues/264
https://github.com/tw543/n/issues/262
https://github.com/yu654r/7/issues/263
https://github.com/tw543/n/issues/261
https://github.com/yu654r/7/issues/262
https://github.com/tw543/n/issues/260
https://github.com/yu654r/7/issues/261
https://github.com/tw543/n/issues/259
https://github.com/yu654r/7/issues/260
https://github.com/tw543/n/issues/258
https://github.com/yu654r/7/issues/259
https://github.com/tw543/n/issues/257
https://github.com/yu654r/7/issues/258
https://github.com/tw543/n/issues/256
https://github.com/yu654r/7/issues/257
https://github.com/tw543/n/issues/255
https://github.com/yu654r/7/issues/256
https://github.com/tw543/n/issues/254
https://github.com/yu654r/7/issues/255
https://github.com/yu654r/7/issues/254
https://github.com/tw543/n/issues/253
https://github.com/yu654r/7/issues/253
https://github.com/tw543/n/issues/252
https://github.com/tw543/n/issues/251
https://github.com/yu654r/7/issues/252
https://github.com/tw543/n/issues/250
https://github.com/yu654r/7/issues/251
https://github.com/tw543/n/issues/249
https://github.com/yu654r/7/issues/250
https://github.com/tw543/n/issues/248
https://github.com/yu654r/7/issues/249
https://github.com/tw543/n/issues/247
https://github.com/yu654r/7/issues/248
https://github.com/tw543/n/issues/246
https://github.com/yu654r/7/issues/247
https://github.com/yu654r/7/issues/246
https://github.com/tw543/n/issues/245
https://github.com/tw543/n/issues/244
https://github.com/yu654r/7/issues/245
https://github.com/tw543/n/issues/243
https://github.com/yu654r/7/issues/244
https://github.com/tw543/n/issues/242
https://github.com/yu654r/7/issues/243
https://github.com/tw543/n/issues/241
https://github.com/yu654r/7/issues/242
https://github.com/tw543/n/issues/240
https://github.com/yu654r/7/issues/241
https://github.com/tw543/n/issues/239
https://github.com/yu654r/7/issues/240
https://github.com/tw543/n/issues/238
https://github.com/yu654r/7/issues/239
https://github.com/tw543/n/issues/237
https://github.com/yu654r/7/issues/238
https://github.com/tw543/n/issues/236
https://github.com/yu654r/7/issues/237
https://github.com/tw543/n/issues/235
https://github.com/yu654r/7/issues/236
https://github.com/tw543/n/issues/234
https://github.com/yu654r/7/issues/235
https://github.com/tw543/n/issues/233
https://github.com/yu654r/7/issues/234
https://github.com/yu654r/7/issues/233
https://github.com/tw543/n/issues/232
https://github.com/yu654r/7/issues/232
https://github.com/tw543/n/issues/231
https://github.com/yu654r/7/issues/231
https://github.com/tw543/n/issues/230
https://github.com/yu654r/7/issues/230
https://github.com/tw543/n/issues/229
https://github.com/yu654r/7/issues/229
https://github.com/tw543/n/issues/228
https://github.com/yu654r/7/issues/228
https://github.com/tw543/n/issues/227
https://github.com/yu654r/7/issues/227
https://github.com/tw543/n/issues/226
https://github.com/yu654r/7/issues/226
https://github.com/tw543/n/issues/225
https://github.com/yu654r/7/issues/225
https://github.com/tw543/n/issues/224
https://github.com/yu654r/7/issues/224
https://github.com/tw543/n/issues/223
https://github.com/yu654r/7/issues/223
https://github.com/tw543/n/issues/222
https://github.com/yu654r/7/issues/222
https://github.com/tw543/n/issues/221
https://github.com/yu654r/7/issues/221
https://github.com/tw543/n/issues/220
https://github.com/yu654r/7/issues/220
https://github.com/tw543/n/issues/219
https://github.com/yu654r/7/issues/219
https://github.com/tw543/n/issues/218
https://github.com/yu654r/7/issues/218
https://github.com/tw543/n/issues/217
https://github.com/yu654r/7/issues/217
https://github.com/tw543/n/issues/216
https://github.com/yu654r/7/issues/216
https://github.com/tw543/n/issues/215
https://github.com/yu654r/7/issues/215
https://github.com/tw543/n/issues/214
https://github.com/yu654r/7/issues/214
https://github.com/tw543/n/issues/213
https://github.com/yu654r/7/issues/213
https://github.com/tw543/n/issues/212
https://github.com/yu654r/7/issues/212
https://github.com/tw543/n/issues/211
https://github.com/yu654r/7/issues/211
https://github.com/tw543/n/issues/210
https://github.com/yu654r/7/issues/210
https://github.com/tw543/n/issues/209
https://github.com/yu654r/7/issues/209
https://github.com/tw543/n/issues/208
https://github.com/yu654r/7/issues/208
https://github.com/tw543/n/issues/207
https://github.com/yu654r/7/issues/207
https://github.com/tw543/n/issues/206
https://github.com/yu654r/7/issues/206
https://github.com/tw543/n/issues/205
https://github.com/yu654r/7/issues/205
https://github.com/tw543/n/issues/204
https://github.com/yu654r/7/issues/204
https://github.com/tw543/n/issues/203
https://github.com/yu654r/7/issues/203
https://github.com/tw543/n/issues/202
https://github.com/yu654r/7/issues/202
https://github.com/tw543/n/issues/201
https://github.com/yu654r/7/issues/201
https://github.com/tw543/n/issues/200
https://github.com/yu654r/7/issues/200
https://github.com/tw543/n/issues/199
https://github.com/tw543/n/issues/198
https://github.com/yu654r/7/issues/199
https://github.com/tw543/n/issues/197
https://github.com/yu654r/7/issues/198
https://github.com/tw543/n/issues/196
https://github.com/yu654r/7/issues/197
https://github.com/tw543/n/issues/195
https://github.com/yu654r/7/issues/196
https://github.com/tw543/n/issues/194
https://github.com/yu654r/7/issues/195
https://github.com/tw543/n/issues/193
https://github.com/yu654r/7/issues/194
https://github.com/tw543/n/issues/192
https://github.com/yu654r/7/issues/193
https://github.com/tw543/n/issues/191
https://github.com/yu654r/7/issues/192
https://github.com/tw543/n/issues/190
https://github.com/yu654r/7/issues/191
https://github.com/tw543/n/issues/189
https://github.com/yu654r/7/issues/190
https://github.com/tw543/n/issues/188
https://github.com/yu654r/7/issues/189
https://github.com/tw543/n/issues/187
https://github.com/yu654r/7/issues/188
https://github.com/tw543/n/issues/186
https://github.com/yu654r/7/issues/187
https://github.com/tw543/n/issues/185
https://github.com/yu654r/7/issues/186
https://github.com/tw543/n/issues/184
https://github.com/yu654r/7/issues/185
https://github.com/tw543/n/issues/183
https://github.com/yu654r/7/issues/184
https://github.com/tw543/n/issues/182
https://github.com/yu654r/7/issues/183
https://github.com/tw543/n/issues/181
https://github.com/yu654r/7/issues/182
https://github.com/tw543/n/issues/180
https://github.com/yu654r/7/issues/181
https://github.com/tw543/n/issues/179
https://github.com/yu654r/7/issues/180
https://github.com/tw543/n/issues/178
https://github.com/yu654r/7/issues/179
https://github.com/tw543/n/issues/177
https://github.com/yu654r/7/issues/178
https://github.com/tw543/n/issues/176
https://github.com/yu654r/7/issues/177
https://github.com/tw543/n/issues/175
https://github.com/yu654r/7/issues/176
https://github.com/tw543/n/issues/174
https://github.com/yu654r/7/issues/175
https://github.com/tw543/n/issues/173
https://github.com/yu654r/7/issues/174
https://github.com/tw543/n/issues/172
https://github.com/yu654r/7/issues/173
https://github.com/tw543/n/issues/171
https://github.com/yu654r/7/issues/172
https://github.com/tw543/n/issues/170
https://github.com/yu654r/7/issues/171
https://github.com/tw543/n/issues/169
https://github.com/yu654r/7/issues/170
https://github.com/tw543/n/issues/168
https://github.com/yu654r/7/issues/169
https://github.com/tw543/n/issues/167
https://github.com/yu654r/7/issues/168
https://github.com/tw543/n/issues/166
https://github.com/yu654r/7/issues/167
https://github.com/tw543/n/issues/165
https://github.com/yu654r/7/issues/166
https://github.com/tw543/n/issues/164
https://github.com/yu654r/7/issues/165
https://github.com/tw543/n/issues/163
https://github.com/yu654r/7/issues/164
https://github.com/tw543/n/issues/162
https://github.com/yu654r/7/issues/163
https://github.com/tw543/n/issues/161
https://github.com/yu654r/7/issues/162
https://github.com/tw543/n/issues/160
https://github.com/yu654r/7/issues/161
https://github.com/tw543/n/issues/159
https://github.com/yu654r/7/issues/160
https://github.com/tw543/n/issues/158
https://github.com/yu654r/7/issues/159
https://github.com/tw543/n/issues/157
https://github.com/yu654r/7/issues/158
https://github.com/tw543/n/issues/156
https://github.com/yu654r/7/issues/157
https://github.com/tw543/n/issues/155
https://github.com/yu654r/7/issues/156
https://github.com/tw543/n/issues/154
https://github.com/yu654r/7/issues/155
https://github.com/tw543/n/issues/153
https://github.com/yu654r/7/issues/154
https://github.com/tw543/n/issues/152
https://github.com/yu654r/7/issues/153
https://github.com/tw543/n/issues/151
https://github.com/yu654r/7/issues/152
https://github.com/tw543/n/issues/150
https://github.com/yu654r/7/issues/151
https://github.com/tw543/n/issues/149
https://github.com/yu654r/7/issues/150
https://github.com/tw543/n/issues/148
https://github.com/yu654r/7/issues/149
https://github.com/tw543/n/issues/147
https://github.com/yu654r/7/issues/148
https://github.com/tw543/n/issues/146
https://github.com/yu654r/7/issues/147
https://github.com/tw543/n/issues/145
https://github.com/yu654r/7/issues/146
https://github.com/tw543/n/issues/144
https://github.com/yu654r/7/issues/145
https://github.com/tw543/n/issues/143
https://github.com/yu654r/7/issues/144
https://github.com/tw543/n/issues/142
https://github.com/yu654r/7/issues/143
https://github.com/tw543/n/issues/141
https://github.com/yu654r/7/issues/142
https://github.com/yu654r/7/issues/141
https://github.com/tw543/n/issues/140
https://github.com/yu654r/7/issues/140
https://github.com/tw543/n/issues/139
https://github.com/yu654r/7/issues/139
https://github.com/tw543/n/issues/138
https://github.com/yu654r/7/issues/138
https://github.com/tw543/n/issues/137
https://github.com/yu654r/7/issues/137
https://github.com/tw543/n/issues/136
https://github.com/yu654r/7/issues/136
https://github.com/tw543/n/issues/135
https://github.com/yu654r/7/issues/135
https://github.com/tw543/n/issues/134
https://github.com/yu654r/7/issues/134
https://github.com/tw543/n/issues/133
https://github.com/yu654r/7/issues/133
https://github.com/tw543/n/issues/132
https://github.com/yu654r/7/issues/132
https://github.com/tw543/n/issues/131
https://github.com/yu654r/7/issues/131
https://github.com/tw543/n/issues/130
https://github.com/yu654r/7/issues/130
https://github.com/tw543/n/issues/129
https://github.com/yu654r/7/issues/129
https://github.com/tw543/n/issues/128
https://github.com/yu654r/7/issues/128
https://github.com/tw543/n/issues/127
https://github.com/yu654r/7/issues/127
https://github.com/tw543/n/issues/126
https://github.com/yu654r/7/issues/126
https://github.com/tw543/n/issues/125
https://github.com/yu654r/7/issues/125
https://github.com/tw543/n/issues/124
https://github.com/yu654r/7/issues/124
https://github.com/tw543/n/issues/123
https://github.com/yu654r/7/issues/123
https://github.com/tw543/n/issues/122
https://github.com/yu654r/7/issues/122
https://github.com/tw543/n/issues/121
https://github.com/yu654r/7/issues/121
https://github.com/tw543/n/issues/120
https://github.com/yu654r/7/issues/120
https://github.com/tw543/n/issues/119
https://github.com/yu654r/7/issues/119
https://github.com/tw543/n/issues/118
https://github.com/yu654r/7/issues/118
https://github.com/tw543/n/issues/117
https://github.com/yu654r/7/issues/117
https://github.com/tw543/n/issues/116
https://github.com/yu654r/7/issues/116
https://github.com/tw543/n/issues/115
https://github.com/yu654r/7/issues/115
https://github.com/tw543/n/issues/114
https://github.com/yu654r/7/issues/114
https://github.com/tw543/n/issues/113
https://github.com/yu654r/7/issues/113
https://github.com/tw543/n/issues/112
https://github.com/yu654r/7/issues/112
https://github.com/tw543/n/issues/111
https://github.com/yu654r/7/issues/111
https://github.com/tw543/n/issues/110
https://github.com/yu654r/7/issues/110
https://github.com/tw543/n/issues/109
https://github.com/yu654r/7/issues/109
https://github.com/tw543/n/issues/108
https://github.com/yu654r/7/issues/108
https://github.com/tw543/n/issues/107
https://github.com/yu654r/7/issues/107
https://github.com/tw543/n/issues/106
https://github.com/yu654r/7/issues/106
https://github.com/tw543/n/issues/105
https://github.com/yu654r/7/issues/105
https://github.com/tw543/n/issues/104
https://github.com/yu654r/7/issues/104
https://github.com/tw543/n/issues/103
https://github.com/yu654r/7/issues/103
https://github.com/tw543/n/issues/102
https://github.com/yu654r/7/issues/102
https://github.com/tw543/n/issues/101
https://github.com/yu654r/7/issues/101
https://github.com/tw543/n/issues/100
https://github.com/yu654r/7/issues/100
https://github.com/tw543/n/issues/99
https://github.com/yu654r/7/issues/99
https://github.com/tw543/n/issues/98
https://github.com/yu654r/7/issues/98
https://github.com/tw543/n/issues/97
https://github.com/yu654r/7/issues/97
https://github.com/tw543/n/issues/96
https://github.com/yu654r/7/issues/96
https://github.com/tw543/n/issues/95
https://github.com/yu654r/7/issues/95
https://github.com/tw543/n/issues/94
https://github.com/yu654r/7/issues/94
https://github.com/tw543/n/issues/93
https://github.com/yu654r/7/issues/93
https://github.com/tw543/n/issues/92
https://github.com/yu654r/7/issues/92
https://github.com/tw543/n/issues/91
https://github.com/yu654r/7/issues/91
https://github.com/tw543/n/issues/90
https://github.com/yu654r/7/issues/90
https://github.com/tw543/n/issues/89
https://github.com/yu654r/7/issues/89
https://github.com/tw543/n/issues/88
https://github.com/yu654r/7/issues/88
https://github.com/tw543/n/issues/87
https://github.com/yu654r/7/issues/87
https://github.com/tw543/n/issues/86
https://github.com/yu654r/7/issues/86
https://github.com/tw543/n/issues/85
https://github.com/yu654r/7/issues/85
https://github.com/tw543/n/issues/84
https://github.com/yu654r/7/issues/84
https://github.com/tw543/n/issues/83
https://github.com/yu654r/7/issues/83
https://github.com/tw543/n/issues/82
https://github.com/yu654r/7/issues/82
https://github.com/tw543/n/issues/81
https://github.com/yu654r/7/issues/81
https://github.com/tw543/n/issues/80
https://github.com/yu654r/7/issues/80
https://github.com/tw543/n/issues/79
https://github.com/yu654r/7/issues/79
https://github.com/tw543/n/issues/78
https://github.com/yu654r/7/issues/78
https://github.com/tw543/n/issues/77
https://github.com/yu654r/7/issues/77
https://github.com/tw543/n/issues/76
https://github.com/yu654r/7/issues/76
https://github.com/tw543/n/issues/75
https://github.com/yu654r/7/issues/75
https://github.com/tw543/n/issues/74
https://github.com/yu654r/7/issues/74
https://github.com/tw543/n/issues/73
https://github.com/yu654r/7/issues/73
https://github.com/tw543/n/issues/72
https://github.com/yu654r/7/issues/72
https://github.com/tw543/n/issues/71
https://github.com/yu654r/7/issues/71
https://github.com/tw543/n/issues/70
https://github.com/yu654r/7/issues/70
https://github.com/tw543/n/issues/69
https://github.com/yu654r/7/issues/69
https://github.com/tw543/n/issues/68
https://github.com/yu654r/7/issues/68
https://github.com/tw543/n/issues/67
https://github.com/yu654r/7/issues/67
https://github.com/tw543/n/issues/66
https://github.com/yu654r/7/issues/66
https://github.com/tw543/n/issues/65
https://github.com/yu654r/7/issues/65
https://github.com/tw543/n/issues/64
https://github.com/yu654r/7/issues/64
https://github.com/tw543/n/issues/63
https://github.com/yu654r/7/issues/63
https://github.com/tw543/n/issues/62
https://github.com/yu654r/7/issues/62
https://github.com/tw543/n/issues/61
https://github.com/yu654r/7/issues/61
https://github.com/tw543/n/issues/60
https://github.com/yu654r/7/issues/60
https://github.com/tw543/n/issues/59
https://github.com/yu654r/7/issues/59
https://github.com/tw543/n/issues/58
https://github.com/yu654r/7/issues/58
https://github.com/tw543/n/issues/57
https://github.com/yu654r/7/issues/57
https://github.com/tw543/n/issues/56
https://github.com/yu654r/7/issues/56
https://github.com/tw543/n/issues/55
https://github.com/yu654r/7/issues/55
https://github.com/tw543/n/issues/54
https://github.com/yu654r/7/issues/54
https://github.com/tw543/n/issues/53
https://github.com/yu654r/7/issues/53
https://github.com/tw543/n/issues/52
https://github.com/yu654r/7/issues/52
https://github.com/tw543/n/issues/51
https://github.com/yu654r/7/issues/51
https://github.com/tw543/n/issues/50
https://github.com/yu654r/7/issues/50
https://github.com/tw543/n/issues/49
https://github.com/yu654r/7/issues/49
https://github.com/tw543/n/issues/48
https://github.com/yu654r/7/issues/48
https://github.com/tw543/n/issues/47
https://github.com/yu654r/7/issues/47
https://github.com/tw543/n/issues/46
https://github.com/yu654r/7/issues/46
https://github.com/tw543/n/issues/45
https://github.com/yu654r/7/issues/45
https://github.com/tw543/n/issues/44
https://github.com/yu654r/7/issues/44
https://github.com/tw543/n/issues/43
https://github.com/yu654r/7/issues/43
https://github.com/tw543/n/issues/42
https://github.com/yu654r/7/issues/42
https://github.com/tw543/n/issues/41
https://github.com/yu654r/7/issues/41
https://github.com/tw543/n/issues/40
https://github.com/yu654r/7/issues/40
https://github.com/tw543/n/issues/39
https://github.com/yu654r/7/issues/39
https://github.com/tw543/n/issues/38
https://github.com/yu654r/7/issues/38
https://github.com/tw543/n/issues/37
https://github.com/yu654r/7/issues/37
https://github.com/tw543/n/issues/36
https://github.com/yu654r/7/issues/36
https://github.com/tw543/n/issues/35
https://github.com/yu654r/7/issues/35
https://github.com/tw543/n/issues/34
https://github.com/yu654r/7/issues/34
https://github.com/tw543/n/issues/33
https://github.com/yu654r/7/issues/33
https://github.com/tw543/n/issues/32
https://github.com/yu654r/7/issues/32
https://github.com/tw543/n/issues/31
https://github.com/yu654r/7/issues/31
https://github.com/tw543/n/issues/30
https://github.com/yu654r/7/issues/30
https://github.com/tw543/n/issues/29
https://github.com/yu654r/7/issues/29
https://github.com/tw543/n/issues/28
https://github.com/yu654r/7/issues/28
https://github.com/tw543/n/issues/27
https://github.com/yu654r/7/issues/27
https://github.com/tw543/n/issues/26
https://github.com/yu654r/7/issues/26
https://github.com/tw543/n/issues/25
https://github.com/yu654r/7/issues/25
https://github.com/tw543/n/issues/24
https://github.com/yu654r/7/issues/24
https://github.com/tw543/n/issues/23
https://github.com/yu654r/7/issues/23
https://github.com/tw543/n/issues/22
https://github.com/yu654r/7/issues/22
https://github.com/tw543/n/issues/21
https://github.com/yu654r/7/issues/21
https://github.com/tw543/n/issues/20
https://github.com/yu654r/7/issues/20
https://github.com/tw543/n/issues/19
https://github.com/yu654r/7/issues/19
https://github.com/tw543/n/issues/18
https://github.com/yu654r/7/issues/18
https://github.com/tw543/n/issues/17
https://github.com/yu654r/7/issues/17
https://github.com/tw543/n/issues/16
https://github.com/yu654r/7/issues/16
https://github.com/tw543/n/issues/15
https://github.com/yu654r/7/issues/15
https://github.com/tw543/n/issues/14
https://github.com/yu654r/7/issues/14
https://github.com/tw543/n/issues/13
https://github.com/yu654r/7/issues/13
https://github.com/tw543/n/issues/12
https://github.com/yu654r/7/issues/12
https://github.com/tw543/n/issues/11
https://github.com/yu654r/7/issues/11
https://github.com/tw543/n/issues/10
https://github.com/yu654r/7/issues/10
https://github.com/tw543/n/issues/9
https://github.com/yu654r/7/issues/9
https://github.com/tw543/n/issues/8
https://github.com/yu654r/7/issues/8
https://github.com/tw543/n/issues/7
https://github.com/yu654r/7/issues/7
https://github.com/tw543/n/issues/6
https://github.com/yu654r/7/issues/6
https://github.com/tw543/n/issues/5
https://github.com/yu654r/7/issues/5
https://github.com/tw543/n/issues/4
https://github.com/yu654r/7/issues/4
https://github.com/tw543/n/issues/3
https://github.com/yu654r/7/issues/3
https://github.com/tw543/n/issues/2
https://github.com/yu654r/7/issues/2
https://github.com/tw543/n/issues/1
https://github.com/yu654r/7/issues/1
https://github.com/tw543/w/issues/461
https://github.com/yu654r/o/issues/448
https://github.com/tw543/w/issues/460
https://github.com/yu654r/o/issues/447
https://github.com/tw543/w/issues/459
https://github.com/yu654r/o/issues/446
https://github.com/tw543/w/issues/458
https://github.com/yu654r/o/issues/445
https://github.com/tw543/w/issues/457
https://github.com/yu654r/o/issues/444
https://github.com/tw543/w/issues/456
https://github.com/yu654r/o/issues/443
https://github.com/tw543/w/issues/455
https://github.com/yu654r/o/issues/442
https://github.com/tw543/w/issues/454
https://github.com/yu654r/o/issues/441
https://github.com/tw543/w/issues/453
https://github.com/yu654r/o/issues/440
https://github.com/tw543/w/issues/452
https://github.com/yu654r/o/issues/439
https://github.com/tw543/w/issues/451
https://github.com/yu654r/o/issues/438
https://github.com/tw543/w/issues/450
https://github.com/yu654r/o/issues/437
https://github.com/tw543/w/issues/449
https://github.com/yu654r/o/issues/436
https://github.com/tw543/w/issues/448
https://github.com/yu654r/o/issues/435
https://github.com/tw543/w/issues/447
https://github.com/yu654r/o/issues/434
https://github.com/tw543/w/issues/446
https://github.com/yu654r/o/issues/433
https://github.com/tw543/w/issues/445
https://github.com/yu654r/o/issues/432
https://github.com/tw543/w/issues/444
https://github.com/yu654r/o/issues/431
https://github.com/tw543/w/issues/443
https://github.com/yu654r/o/issues/430
https://github.com/tw543/w/issues/442
https://github.com/yu654r/o/issues/429
https://github.com/tw543/w/issues/441
https://github.com/yu654r/o/issues/428
https://github.com/tw543/w/issues/440
https://github.com/yu654r/o/issues/427
https://github.com/tw543/w/issues/439
https://github.com/yu654r/o/issues/426
https://github.com/tw543/w/issues/438
https://github.com/yu654r/o/issues/425
https://github.com/tw543/w/issues/437
https://github.com/yu654r/o/issues/424
https://github.com/tw543/w/issues/436
https://github.com/yu654r/o/issues/423
https://github.com/tw543/w/issues/435
https://github.com/yu654r/o/issues/422
https://github.com/tw543/w/issues/434
https://github.com/yu654r/o/issues/421
https://github.com/tw543/w/issues/433
https://github.com/yu654r/o/issues/420
https://github.com/tw543/w/issues/432
https://github.com/yu654r/o/issues/419
https://github.com/tw543/w/issues/431
https://github.com/tw543/w/issues/430
https://github.com/yu654r/o/issues/418
https://github.com/tw543/w/issues/429
https://github.com/yu654r/o/issues/417
https://github.com/tw543/w/issues/428
https://github.com/yu654r/o/issues/416
https://github.com/tw543/w/issues/427
https://github.com/yu654r/o/issues/415
https://github.com/tw543/w/issues/426
https://github.com/yu654r/o/issues/414
https://github.com/tw543/w/issues/425
https://github.com/yu654r/o/issues/413
https://github.com/tw543/w/issues/424
https://github.com/yu654r/o/issues/412
https://github.com/tw543/w/issues/423
https://github.com/yu654r/o/issues/411
https://github.com/tw543/w/issues/422
https://github.com/yu654r/o/issues/410
https://github.com/tw543/w/issues/421
https://github.com/yu654r/o/issues/409
https://github.com/tw543/w/issues/420
https://github.com/yu654r/o/issues/408
https://github.com/tw543/w/issues/419
https://github.com/yu654r/o/issues/407
https://github.com/tw543/w/issues/418
https://github.com/yu654r/o/issues/406
https://github.com/tw543/w/issues/417
https://github.com/yu654r/o/issues/405
https://github.com/tw543/w/issues/416
https://github.com/yu654r/o/issues/404
https://github.com/tw543/w/issues/415
https://github.com/yu654r/o/issues/403
https://github.com/tw543/w/issues/414
https://github.com/tw543/w/issues/413
https://github.com/yu654r/o/issues/402
https://github.com/tw543/w/issues/412
https://github.com/yu654r/o/issues/401
https://github.com/tw543/w/issues/411
https://github.com/tw543/w/issues/410
https://github.com/yu654r/o/issues/400
https://github.com/tw543/w/issues/409
https://github.com/yu654r/o/issues/399
https://github.com/tw543/w/issues/408
https://github.com/yu654r/o/issues/398
https://github.com/tw543/w/issues/407
https://github.com/yu654r/o/issues/397
https://github.com/tw543/w/issues/406
https://github.com/yu654r/o/issues/396
https://github.com/tw543/w/issues/405
https://github.com/yu654r/o/issues/395
https://github.com/tw543/w/issues/404
https://github.com/yu654r/o/issues/394
https://github.com/tw543/w/issues/403
https://github.com/yu654r/o/issues/393
https://github.com/tw543/w/issues/402
https://github.com/yu654r/o/issues/392
https://github.com/tw543/w/issues/401
https://github.com/yu654r/o/issues/391
https://github.com/tw543/w/issues/400
https://github.com/yu654r/o/issues/390
https://github.com/tw543/w/issues/399
https://github.com/yu654r/o/issues/389
https://github.com/tw543/w/issues/398
https://github.com/yu654r/o/issues/388
https://github.com/tw543/w/issues/397
https://github.com/yu654r/o/issues/387
https://github.com/tw543/w/issues/396
https://github.com/yu654r/o/issues/386
https://github.com/tw543/w/issues/395
https://github.com/yu654r/o/issues/385
https://github.com/tw543/w/issues/394
https://github.com/yu654r/o/issues/384
https://github.com/tw543/w/issues/393
https://github.com/yu654r/o/issues/383
https://github.com/tw543/w/issues/392
https://github.com/yu654r/o/issues/382
https://github.com/tw543/w/issues/391
https://github.com/yu654r/o/issues/381
https://github.com/tw543/w/issues/390
https://github.com/yu654r/o/issues/380
https://github.com/tw543/w/issues/389
https://github.com/yu654r/o/issues/379
https://github.com/tw543/w/issues/388
https://github.com/yu654r/o/issues/378
https://github.com/tw543/w/issues/387
https://github.com/yu654r/o/issues/377
https://github.com/tw543/w/issues/386
https://github.com/yu654r/o/issues/376
https://github.com/tw543/w/issues/385
https://github.com/yu654r/o/issues/375
https://github.com/tw543/w/issues/384
https://github.com/yu654r/o/issues/374
https://github.com/tw543/w/issues/383
https://github.com/yu654r/o/issues/373
https://github.com/tw543/w/issues/382
https://github.com/yu654r/o/issues/372
https://github.com/tw543/w/issues/381
https://github.com/yu654r/o/issues/371
https://github.com/tw543/w/issues/380
https://github.com/yu654r/o/issues/370
https://github.com/tw543/w/issues/379
https://github.com/yu654r/o/issues/369
https://github.com/tw543/w/issues/378
https://github.com/yu654r/o/issues/368
https://github.com/tw543/w/issues/377
https://github.com/yu654r/o/issues/367
https://github.com/tw543/w/issues/376
https://github.com/yu654r/o/issues/366
https://github.com/tw543/w/issues/375
https://github.com/yu654r/o/issues/365
https://github.com/tw543/w/issues/374
https://github.com/yu654r/o/issues/364
https://github.com/tw543/w/issues/373
https://github.com/yu654r/o/issues/363
https://github.com/tw543/w/issues/372
https://github.com/yu654r/o/issues/362
https://github.com/tw543/w/issues/371
https://github.com/yu654r/o/issues/361
https://github.com/tw543/w/issues/370
https://github.com/yu654r/o/issues/360
https://github.com/tw543/w/issues/369
https://github.com/yu654r/o/issues/359
https://github.com/tw543/w/issues/368
https://github.com/yu654r/o/issues/358
https://github.com/tw543/w/issues/367
https://github.com/yu654r/o/issues/357
https://github.com/tw543/w/issues/366
https://github.com/yu654r/o/issues/356
https://github.com/tw543/w/issues/365
https://github.com/yu654r/o/issues/355
https://github.com/tw543/w/issues/364
https://github.com/yu654r/o/issues/354
https://github.com/tw543/w/issues/363
https://github.com/yu654r/o/issues/353
https://github.com/tw543/w/issues/362
https://github.com/yu654r/o/issues/352
https://github.com/tw543/w/issues/361
https://github.com/yu654r/o/issues/351
https://github.com/tw543/w/issues/360
https://github.com/yu654r/o/issues/350
https://github.com/tw543/w/issues/359
https://github.com/yu654r/o/issues/349
https://github.com/tw543/w/issues/358
https://github.com/yu654r/o/issues/348
https://github.com/tw543/w/issues/357
https://github.com/yu654r/o/issues/347
https://github.com/tw543/w/issues/356
https://github.com/yu654r/o/issues/346
https://github.com/tw543/w/issues/355
https://github.com/yu654r/o/issues/345
更多推荐
所有评论(0)