root 2 месяцев назад
Родитель
Сommit
6e0559f18a
2 измененных файлов с 86 добавлено и 0 удалено
  1. 83 0
      02day/test.txt
  2. 3 0
      git命令.txt

+ 83 - 0
02day/test.txt

@@ -0,0 +1,83 @@
+from langchain_community.document_loaders import PyMuPDFLoader
+from langchain_text_splitters import RecursiveCharacterTextSplitter
+from langchain_community.embeddings import DashScopeEmbeddings
+from langchain_community.vectorstores import Chroma
+from langchain_core.prompts import ChatPromptTemplate
+from langchain_community.chat_models import ChatTongyi
+from langchain_core.output_parsers import StrOutputParser
+
+# ========== 第一步:加载文档 ==========
+loader = PyMuPDFLoader("./2222.pdf")
+pages = loader.load()
+
+# ========== 第二步:清洗数据(可选,根据文档质量决定)==========
+# clean_pages = [clean_pdf_text(page) for page in pages]
+
+# ========== 第三步:分块 ==========
+splitter = RecursiveCharacterTextSplitter(
+    # 分隔符优先级:段落 → 换行 → 句号 → 空格 → 硬切
+    #separators=["\n\n", "\n", "。", "!", "?", " ", ""],
+    separators = ["\n\n", "\n", "。", "!", "?", " "],
+    # 每个块最大 50 字符
+    chunk_size=100,
+    # 相邻块重叠 10 字符(chunk_size 的 20%)
+    chunk_overlap=10,
+    # 长度计算函数
+    length_function=len
+)
+docs = splitter.split_documents(pages)
+
+# ========== 第四步:向量化 + 存入向量库 ==========
+
+vectorstore = Chroma.from_documents(
+    documents=docs,
+    embedding=embedding_model,
+    persist_directory="./test1_db"
+)
+
+# ========== 第五步:创建检索器 ==========
+retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
+
+# ========== 第六步:提问 ==========
+query = "团队管理"
+relevant_docs = retriever.invoke(query)
+
+# ========== 第七步:生成回答 ==========
+context = "\n\n---\n\n".join([d.page_content for d in relevant_docs])
+
+prompt = ChatPromptTemplate.from_template("""
+你是一个专业的知识库助手。请根据以下上下文回答问题。
+
+**规则:**
+- 只基于提供的上下文回答,不要编造
+- 如果上下文中没有相关信息,直接说「根据现有资料,我找不到这个问题的答案」
+- 回答要简洁直接,引用原文时用引号
+
+**上下文:**
+{context}
+
+**问题:**
+{question}
+""")
+
+llm = ChatOpenAI(
+    model_name="kimi-k2.6",
+    api_key=ds_open_key,                    # 在 platform.deepseek.com 获取
+    base_url=ds_open_url     # DeepSeek API 地址
+)
+chain = prompt | llm | StrOutputParser()
+
+answer = chain.invoke({"context": context, "question": query})
+print(answer)
+
+根据上下文,团队管理的相关内容如下:
+
+**提高团队绩效的措施:**
+- "改进方法提高效率"
+- "采用快速跟进"
+- "制定奖惩规则,提高团队绩效"
+
+**团队管理中存在的问题:**
+- "没有明确各团队成员的职责"
+- "没有制定团队基本规则"
+- "对于团队冲突没有及时、合理解决"

+ 3 - 0
git命令.txt

@@ -0,0 +1,3 @@
+$ git add .
+$ git commit -m "第一次提交代码"
+git push -u https://git.miaoatech.cn/tanghe/work.git master