LangChain是一个强大的框架,用于开发由语言模型驱动的应用程序。它提供了以下核心功能: - 链式处理 - 提示模板 - 记忆系统 - 文档加载和处理 - 向量存储 - Agent系统
pythonfrom langchain.chains import LLMChain from langchain.llms import OpenAI from langchain.prompts import PromptTemplate # 创建提示模板 prompt = PromptTemplate( input_variables=["product"], template="给我写一个关于{product}的产品描述" ) # 创建LLM llm = OpenAI(temperature=0.7) # 创建链 chain = LLMChain(llm=llm, prompt=prompt) # 运行链 result = chain.run(product="智能手表") print(result)
pythonfrom langchain.prompts import ( ChatPromptTemplate, SystemMessagePromptTemplate, HumanMessagePromptTemplate ) # 系统消息模板 system_template = "你是一个{role}专家" system_prompt = SystemMessagePromptTemplate.from_template(system_template) # 人类消息模板 human_template = "请给我一些关于{topic}的建议" human_prompt = HumanMessagePromptTemplate.from_template(human_template) # 组合模板 chat_prompt = ChatPromptTemplate.from_messages([ system_prompt, human_prompt ])
pythonfrom langchain.memory import ConversationBufferMemory from langchain.chains import ConversationChain # 创建记忆系统 memory = ConversationBufferMemory() # 创建对话链 conversation = ConversationChain( llm=OpenAI(), memory=memory, verbose=True ) # 进行对话 conversation.predict(input="你好!") conversation.predict(input="我们刚才在聊什么?")
pythonfrom langchain.document_loaders import TextLoader from langchain.text_splitter import CharacterTextSplitter from langchain.embeddings import OpenAIEmbeddings from langchain.vectorstores import Chroma # 加载文档 loader = TextLoader('document.txt') documents = loader.load() # 分割文本 text_splitter = CharacterTextSplitter( chunk_size=1000, chunk_overlap=200 ) texts = text_splitter.split_documents(documents) # 创建向量存储 embeddings = OpenAIEmbeddings() vectorstore = Chroma.from_documents(texts, embeddings)
pythonfrom langchain.chains import RetrievalQA # 创建问答链 qa_chain = RetrievalQA.from_chain_type( llm=OpenAI(), chain_type="stuff", retriever=vectorstore.as_retriever() ) # 提问 query = "文档中提到了哪些主要观点?" response = qa_chain.run(query)
pythonfrom langchain.agents import initialize_agent, Tool from langchain.agents import AgentType # 定义工具 tools = [ Tool( name="Search", func=lambda x: "搜索结果:" + x, description="用于搜索信息的工具" ) ] # 初始化agent agent = initialize_agent( tools, OpenAI(temperature=0), agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True ) # 运行agent agent.run("查找关于人工智能的最新进展")
pythonfrom langchain.chains import ConversationalRetrievalChain # 创建检索式对话链 qa = ConversationalRetrievalChain.from_llm( llm=OpenAI(), retriever=vectorstore.as_retriever(), memory=ConversationBufferMemory( memory_key="chat_history", return_messages=True ) ) # 处理用户查询 def handle_query(query): result = qa({"question": query}) return result["answer"]
pythonfrom langchain.chains.summarize import load_summarize_chain # 创建摘要链 chain = load_summarize_chain( OpenAI(temperature=0), chain_type="map_reduce", verbose=True ) # 生成摘要 summary = chain.run(documents)
结构化输出
性能优化
异步处理
错误处理