亚泰国际建设股份有限公司网站做一个app需要投资多少钱
2026/1/18 6:36:02 网站建设 项目流程
亚泰国际建设股份有限公司网站,做一个app需要投资多少钱,营销管理软件,wordpress修改邮件内容引言 随着人工智能技术的快速发展#xff0c;构建智能化的客服系统已成为企业提升服务质量的重要手段。传统的客服系统往往依赖人工处理#xff0c;效率低下且成本高昂。而基于检索增强生成#xff08;Retrieval-Augmented Generation, RAG#xff09;技术的客服系统#…引言随着人工智能技术的快速发展构建智能化的客服系统已成为企业提升服务质量的重要手段。传统的客服系统往往依赖人工处理效率低下且成本高昂。而基于检索增强生成Retrieval-Augmented Generation, RAG技术的客服系统能够有效结合大量知识库信息提供准确、及时的自动回复。本文将详细介绍如何使用LangChain框架和RAG技术构建一个智能客服问答系统该系统能够基于项目文档自动回答用户问题大大提升了客服效率和用户体验。项目架构概述本项目采用以下技术架构LangChain框架: 用于构建语言模型应用RAG技术: 检索增强生成结合知识库信息生成回答Ollama: 本地大语言模型服务FAISS: 高效的向量相似性搜索库Qwen2.5: 主要语言模型项目包含以下核心组件知识库构建模块向量数据库管理问题检索与匹配智能回答生成项目依赖首先让我们看看项目的完整依赖配置langchain1.2.0 langchain-classic1.0.1 langchain-community0.4.1 langchain-core1.2.6 langchain-ollama1.0.1 langchain-text-splitters1.1.0 requests PyYAML faiss-cpu这些依赖库是构建RAG客服系统的核心组件其中LangChain用于构建应用框架Ollama用于本地模型部署FAISS用于向量存储和检索。完整代码实现下面是完整的RAG客服问答系统实现代码#!/usr/bin/env python3# -*- coding: utf-8 -*- RAG客服系统演示脚本 展示基于检索增强生成的客服问答功能 fromlangchain_core.promptsimportChatPromptTemplatefromlangchain_ollamaimportChatOllamafromlangchain_text_splittersimportRecursiveCharacterTextSplitterfromlangchain_community.vectorstoresimportFAISSfromlangchain_ollamaimportOllamaEmbeddingsfromlangchain_core.documentsimportDocumentfromlangchain_core.output_parsersimportStrOutputParserfromlangchain_core.runnablesimportRunnablePassthroughimporttimedefformat_docs(docs):格式化文档return\n\n.join([doc.page_contentfordocindocs])defdemo_rag_customer_service():演示RAG客服系统print(演示: 基于RAG的客服问答系统)print(*60)# 项目相关的知识库文档knowledge_base[Document(page_content 项目名称: 基于LangChain与Ollama的Qwen2.5智能助手 项目功能: 构建一个支持网络搜索、数学计算、节假日查询的本地AI Agent 核心技术: LangChain, Ollama, Qwen2.5模型 项目目标: 提供一个功能丰富、可扩展的本地AI助手解决方案 ,metadata{source:project_overview}),Document(page_content agent.py - Agent核心创建模块 功能: 创建工具调用Agent包含Qwen2.5模型初始化、提示模板定义、Agent执行器创建 主要函数: create_qwen_agent() 使用的模型: qwen2.5:7b API端点: http://localhost:11434 作用: 定义AI Agent的核心逻辑和行为 ,metadata{source:agent_module}),Document(page_content tools.py - 工具函数模块 功能: 定义AI Agent可使用的各种工具 包含工具: - 网络搜索工具 (DuckDuckGoSearchRun) - 数学计算器 (calculator) - 节假日查询工具 (get_today_holiday, get_date_holiday, get_month_holidays, get_year_holidays) - Python代码解释器 (python_code_interpreter) - 天气查询工具 (get_weather) - 货币兑换工具 (currency_converter) - 股票价格查询工具 (get_stock_price) - YAML处理工具 (yaml_parser, yaml_generator, read_yaml_file, write_yaml_file) ,metadata{source:tools_module}),Document(page_content run.py - 主运行模块 功能: 提供用户交互界面启动Agent并处理用户输入 交互方式: 命令行输入输出 退出命令: exit, quit, bye 作用: 项目的入口点负责用户交互循环 ,metadata{source:run_module}),Document(page_content LangChain框架介绍: LangChain是一个强大的框架用于构建语言模型驱动的应用程序。 核心组件: - Prompts: 定义如何向语言模型提出问题 - LLMs: 语言模型接口 - Chains: 将多个组件链接在一起 - Agents: 使用工具的语言模型 - Memory: 在请求之间保持状态 - Tools: 允许Agent访问外部系统的功能 ,metadata{source:langchain_intro}),Document(page_content RAG系统 (Retrieval-Augmented Generation): RAG代表检索增强生成是一种结合检索和生成的技术。 工作原理: 1. 将文档转换为向量并存储在向量数据库中 2. 将用户问题转换为向量 3. 在向量数据库中搜索最相似的文档 4. 将检索到的文档与问题一起发送给语言模型 5. 语言模型基于上下文生成答案 优势: 提高回答的准确性和相关性 ,metadata{source:rag_system}),Document(page_content 安装和部署: 1. 安装依赖: pip install -r requirements.txt 2. 启动Ollama服务: ollama serve 3. 下载模型: ollama pull qwen2.5:7b 4. 运行程序: python run.py 确保Ollama服务在 http://localhost:11434 运行 ,metadata{source:installation}),Document(page_content 常见问题解答: Q: 如何启动项目? A: 首先运行 ollama serve然后下载模型 ollama pull qwen2.5:7b最后运行 python run.py Q: 如何使用工具? A: Agent会自动根据问题内容选择合适的工具用户无需手动调用 Q: 支持哪些功能? A: 支持网络搜索、数学计算、节假日查询、天气查询、货币兑换、股票价格查询、YAML处理等 Q: 如何扩展功能? A: 可以通过在tools.py中添加新的工具函数来扩展功能 ,metadata{source:faq}),Document(page_content YAML处理功能: 项目支持YAML格式处理包括: - yaml_parser: 解析YAML内容 - yaml_generator: 将字典转换为YAML格式 - read_yaml_file: 读取YAML文件 - write_yaml_file: 写入YAML文件 依赖: PyYAML库 ,metadata{source:yaml_features})]print(步骤 1: 创建知识库...)print(f - 知识库包含{len(knowledge_base)}个文档片段)# 分割文档print(步骤 2: 分割文档...)text_splitterRecursiveCharacterTextSplitter(chunk_size300,chunk_overlap50)split_docstext_splitter.split_documents(knowledge_base)print(f - 分割后得到{len(split_docs)}个文档块)# 创建嵌入和向量存储print(步骤 3: 创建向量数据库...)try:embeddingsOllamaEmbeddings(modelnomic-embed-text,base_urlhttp://localhost:11434)vectorstoreFAISS.from_documents(split_docs,embeddings)retrievervectorstore.as_retriever(search_kwargs{k:2})print( - 向量数据库创建成功)exceptExceptionase:print(f - 创建向量数据库时出错:{e})return# 初始化语言模型print(步骤 4: 初始化语言模型...)try:llmChatOllama(modelqwen2.5:7b,base_urlhttp://localhost:11434,temperature0.2)print( - 语言模型初始化成功)exceptExceptionase:print(f - 初始化语言模型时出错:{e})return# 客服问答提示模板customer_service_promptChatPromptTemplate.from_messages([(system,你是一个 helpful 的客服助手专门回答关于LangChain与Ollama Qwen2.5智能助手项目的问题。 使用以下上下文信息来回答用户的问题。如果上下文信息不足以回答问题请说明你无法根据现有信息回答。 保持回答专业、准确且有帮助。 上下文信息: {context}),(human,问题: {question}\n\n请提供详细且有用的回答。)])# 创建RAG链rag_chain({context:retriever|format_docs,question:RunnablePassthrough()}|customer_service_prompt|llm|StrOutputParser())print(步骤 5: RAG链创建成功)print()# 演示常见问题的回答print(步骤 6: 演示常见问题的回答)print(-*40)demo_questions[这个项目是做什么的?,如何安装这个项目?,有哪些工具可以使用?,agent.py文件的作用是什么?]fori,questioninenumerate(demo_questions,1):print(f问题{i}:{question})# 检索相关文档relevant_docsretriever.invoke(question)print(f - 检索到{len(relevant_docs)}个相关文档片段)# 生成回答try:print( - 生成回答中...)responserag_chain.invoke(question)print(f - 客服回答:{response[:300]}...)# 显示前300个字符exceptExceptionase:print(f - 生成回答时出错:{e})print()time.sleep(1)# 短暂延迟让演示更清晰print(*60)print(RAG客服系统工作原理:)print(1. 将项目文档存储在向量数据库中 (知识库))print(2. 当用户提问时系统检索最相关的文档片段)print(3. 将检索到的文档与用户问题一起发送给AI模型)print(4. AI模型基于上下文生成准确的回答)print(5. 这样可以确保回答基于项目的真实信息)print()print(系统优势:)print(- 回答准确: 基于真实文档内容)print(- 上下文感知: 结合检索信息生成回答)print(- 可扩展: 可随时添加新的知识库文档)print(- 专业性强: 针对特定领域优化)defmain():主函数print(RAG客服系统演示)print(*60)# 检查Ollama服务try:importrequests responserequests.get(http://localhost:11434/api/tags,timeout5)ifresponse.status_code!200:print(错误: 无法连接到Ollama服务)returnprint(✓ Ollama服务连接正常)exceptrequests.exceptions.ConnectionError:print(错误: 无法连接到Ollama服务)returnexceptExceptionase:print(f检查Ollama服务时出错:{e})return# 检查所需模型try:importjson responserequests.get(http://localhost:11434/api/tags,timeout5)modelsjson.loads(response.text)[models]model_names[model[name]formodelinmodels]ifnomic-embed-text:latestnotinmodel_names:print(⚠ 警告: 未找到 nomic-embed-text 模型)else:print(✓ 找到 nomic-embed-text 模型)ifqwen2.5:7bnotinmodel_names:print(⚠ 警告: 未找到 qwen2.5:7b 模型)else:print(✓ 找到 qwen2.5:7b 模型)exceptExceptionase:print(f检查模型时出错:{e})print()# 运行演示demo_rag_customer_service()if__name____main__:main()系统核心功能详解1. 知识库构建系统使用Document对象存储项目相关的知识信息包括项目概述、各模块功能、安装部署指南等内容。这些文档会被分割并转换为向量存储在FAISS数据库中。2. 向量检索机制使用OllamaEmbeddings创建文档嵌入通过FAISS实现高效的相似性搜索。当用户提问时系统会将问题转换为向量并在知识库中检索最相关的文档片段。3. RAG链设计通过LangChain的链式调用将检索到的文档与用户问题结合传递给语言模型生成最终回答。这种方式既保证了回答的准确性又提高了生成质量。运行环境配置1. 环境准备pipinstall-r requirements.txt2. 启动Ollama服务ollama serve3. 下载所需模型ollama pull qwen2.5:7b ollama pull nomic-embed-text4. 运行系统python demo_rag_customer_service.py系统优势准确性高: 回答基于真实文档内容避免幻觉上下文感知: 结合检索信息生成回答可扩展性强: 可随时添加新的知识库文档领域专业: 针对特定领域优化成本效益: 本地部署无需云服务费用扩展建议增加记忆功能: 实现多轮对话管理优化检索算法: 使用更高级的相似性搜索方法引入评估指标: 量化系统性能添加图形界面: 提升用户体验集成其他数据源: 扩展知识库覆盖范围总结本文详细介绍了基于LangChain和RAG技术构建智能客服问答系统的完整实现过程。通过将项目文档作为知识库系统能够准确回答用户问题大大提升了客服效率。该系统具有高度的可扩展性和专业性可作为构建更复杂客服系统的良好基础。随着AI技术的不断发展RAG技术将在更多领域发挥重要作用。掌握这一技术对于开发智能化应用具有重要意义。希望本文能为您提供有价值的参考和启发。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询