Rasa 安装过程中的坑

Rasa是NLU的一个强大的工具,推荐python3。

进行安装的过程中多少遇到一些坑,这里记录下来,做一些总结也做一些分享。

我的整个环境是采用Centos7。

1,

是安装python3的环境,请参考:https://blog.youkuaiyun.com/u011244708/article/details/82915006

2,

是安装相关的依赖的python3的库,我采用的pip来安装

pip install numpy

pip install pandas

pip install jieba

pip install sklearn

3,下载rasa

cd /data/nlp

wget https://github.com/crownpku/Rasa_NLU_Chi/archive/master.zip

unzip master.zip

cd Rasa_NLU_Chi-master

python setup.py install

这里提示没有twisted,解决方法:

wget http://mirrors.aliyun.com/pypi/packages/73/1d/9aa595acbd12b9786621e438c88fa83e761b389ea600434c1298c97bb07f/Twisted-18.9.0rc1.tar.bz2#sha256=9b848851bd8d3006795dfca70f3d3a3f56af46111fee8033b54c3e3ed0fb42f4

tar -jxvf Twisted-18.9.0rc1.tar.bz2

cd Twisted-18.9.0rc1

python setup.py  install

然后在到Rasa的目录

执行python setup.py install

Ok了。

Tip:如果出现没有Python.h的错误提示,那么yum install python-dev来解决,主要是进行gcc编译相关源代码找到头文件用的。

 

启动服务:

python -m rasa_nlu.server -c sample_configs/config_jieba_mitie_sklearn.yml --path models

出现错误有:

ImportError: cannot import name 'ssl' from 'urllib3.util.ssl_' (/usr/local/src/python3/lib/python3.7/site-packages/urllib3-1.23-py3.7.egg/urllib3/util/ssl_.py)

这里还是缺少urllib3造成的:

  • pyOpenSSL
  • ndg-httpsclient
  • pyasn1

实际上这个问题的解决,是要重新编译python3增加ssl的支持。我在上一个文章中已经说过,./configure --prefix=/usr/local/src/python3 --with-ssl    #python3 这里是一个坑,需要安装ssl的支持

再次启动服务---》

[root@AY130607094503262976Z Rasa_NLU_Chi-master]# python -m rasa_nlu.server -c sample_configs/config_jieba_mitie_sklearn.yml --path models
2018-10-01 14:43:48+0800 [-] Log opened.
2018-10-01 14:43:48+0800 [-] Site starting on 5000
2018-10-01 14:43:48+0800 [-] Starting factory <twisted.web.server.Site object at 0x7ff3a2878470>
 

说明已经启动起来了。

 

 

<think>首先,用户的问题是:“我想了解如何开发一个AI工具 请问如何开发一个AI工具 步骤 技术选型 实现方法”。这翻译成英文是:“I want to learn how to develop an AI tool. How to develop an AI tool? Steps, technology selection, implementation methods.” 根据系统级指令,我需要: - 所有行内数学表达式使用 $...$ 格式。 - 独立公式使用 $$...$$ 格式并单独成段。 - LaTeX 语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如 [^1]。 - 回答结构清晰,帮助用户逐步解决问题,尽量保证回答真实可靠。 - 参考提供的引用内容。 提供的引用包括: - [^1]: 使用AI工具开发一个系统的完整步骤。以“开发一个任务管理系统”为例,从想法提出到测试上线。 - [^2]: 开发环境搭建与技术选型的重要性,常见开发环境和技术栈。 - [^3]: AI人工智能里Whisper的技术选型要点,包括核心概念、算法原理、数学模型等。 - [^4]: 监控体系,不同场景推荐方案,如企业内部知识库、电商客服机器人等。 用户的问题是关于开发AI工具的步骤、技术选型和实现方法。我需要基于这些引用构建一个结构化的回答。 **步骤大纲:** 1. **明确需求与完善想法:** 参考 [^1],从想法提出开始。 2. **开发环境搭建与技术选型:** 参考 [^2],讨论技术栈选择。 3. **核心概念与算法实现:** 参考 [^3],涉及AI模型如Whisper的选型要点。 4. **实现方法与开发:** 包括代码实现和测试。 5. **监控与优化:** 参考 [^4],涉及监控体系。 6. **应用场景与部署:** 讨论不同场景的方案。 **回答结构:** - **引言:** 简要介绍开发AI工具的整体流程。 - **步骤详解:** - 步骤1: 明确需求 - 步骤2: 技术选型 - 步骤3: 开发环境搭建 - 步骤4: 算法实现(可能包括数学模型) - 步骤5: 系统开发与集成 - 步骤6: 测试与优化 - 步骤7: 部署与监控 - **总结:** 概括关键点。 - **生成相关问题:** 在末尾添加相关问题。 **确保数学表达式正确:** - 如果有数学内容,使用 $...$ 或 $$...$$。例如,在讨论AI模型时,可能涉及损失函数或优化算法,如 $L = \frac{1}{N} \sum_{i=1}^{N} (y_i - \hat{y}_i)^2$。 **引用标识:** - 在回答中自然地添加引用,例如在描述步骤时引用 [^1]。 **最终输出:** - 以中文回答。 - 结构清晰。 - 生成相关问题。</think>### 如何开发一个AI工具:步骤、技术选型与实现方法 开发一个AI工具是一个系统化的过程,涉及从需求分析到部署监控的全生命周期。基于行业最佳实践和参考引用,我将逐步解释核心步骤、技术选型要点和实现方法。整个过程强调可靠性和可扩展性,确保工具能高效解决实际问题。以下内容基于真实开发经验构建,并结合了相关引用内容(如开发任务管理系统的案例[^1]、技术选型指南[^2][^3]和监控优化方案[^4])。 #### 步骤1: 明确需求与完善想法 开发AI工具的第一步是清晰定义目标和范围。这包括: - **问题定义:** 确定AI工具要解决的具体问题(如自动化客服、图像识别或预测分析)。例如,开发一个任务管理系统时,需求可能包括任务分配自动化和优先级排序[^1]。 - **用户场景分析:** 识别目标用户和用例(如企业内部使用或电商客服)。参考不同场景的推荐方案(如电商客服机器人使用Rasa框架[^4]),确保需求贴合实际。 - **输出文档:** 编写需求规格说明书(SRS),包括功能列表和非功能需求(如性能指标)。AI工具的需求应优先考虑可量化的目标,例如准确率或响应时间。 这一阶段避免过早陷入技术细节,而是聚焦于业务价值。常见陷阱是需求模糊导致后续返工[^1]。 #### 步骤2: 技术选型 技术选型是核心环节,需基于需求选择合适的技术栈。参考AI领域的选型要点(如Whisper模型的背景和核心概念[^3]),关键考量包括: - **AI模型选择:** - **规则引擎:** 适用于简单任务(如知识库检索),使用ElasticSearch实现快速响应[^4]。 - **机器学习框架:** 对于复杂场景(如自然语言处理),选型TensorFlow或PyTorch。例如,Whisper模型涉及语音识别算法,其数学模型基于卷积神经网络(CNN)和递归神经网络(RNN),损失函数可表示为: $$ L = -\sum_{t=1}^{T} \log P(y_t | y_{<t}, x) $$ 其中 $x$ 是输入序列,$y_t$ 是输出标签[^3]。 - **预训练模型API:** 开放领域问答(如使用GPT-3.5 API)能减少开发时间,但需注意API成本[^4]。 - **开发语言与工具:** - 语言:Python是首选(占AI开发90%以上),因其丰富的库(如Scikit-learn、Hugging Face)。 - 工具:使用AI辅助工具(如豆包或Cursor)加速编码,参考开发环境搭建的最佳实践[^2]。 - **基础设施选型:** - 云平台:AWS、Azure或GCP提供托管服务(如SageMaker),适合快速部署。 - 本地环境:Docker容器化确保环境一致性[^2]。 选型时评估性能、可维护性和社区支持。例如,Whisper技术选型强调算法原理(如注意力机制)与实际场景的匹配[^3]。 #### 步骤3: 开发环境搭建 搭建稳定高效的开发环境是基础: - **本地环境:** 安装Python、Anaconda和IDE(如VS Code),配置虚拟环境(用venv或Conda)隔离依赖[^2]。 - **版本控制:** 使用Git管理代码,结合GitHub或GitLab。 - **协作工具:** 集成Jupyter Notebook进行原型设计,参考开发环境指南中关于工具链的说明[^2]。 - **测试环境:** 设置单元测试框架(如PyTest),确保AI模型的可复现性。 此阶段避免环境冲突,例如通过Dockerfile定义容器镜像[^2]。 #### 步骤4: 算法实现与模型训练 实现AI核心功能,涉及编码和训练: - **数据准备:** - 收集和清洗数据(如使用Pandas库)。 - 数据增强技术提升模型鲁棒性,例如图像识别中添加噪声。 - **模型开发:** - 简单场景:实现规则引擎(如基于ElasticSearch的检索逻辑[^4])。 - 复杂AI:编写模型代码。例如,开发一个类似Whisper的语音识别工具: ```python import torch from transformers import WhisperForConditionalGeneration, WhisperProcessor # 加载预训练模型 model = WhisperForConditionalGeneration.from_pretrained("openai/whisper-small") processor = WhisperProcessor.from_pretrained("openai/whisper-small") # 输入音频处理 inputs = processor(audio_data, return_tensors="pt", sampling_rate=16000) # 生成预测 predicted_ids = model.generate(inputs.input_features) transcription = processor.batch_decode(predicted_ids, skip_special_tokens=True)[0] print(f"识别结果: {transcription}") ``` 此代码基于Whisper的Transformer架构,其数学原理涉及自注意力机制 $ \text{Attention}(Q,K,V) = \text{softmax}\left(\frac{QK^T}{\sqrt{d_k}}\right)V $,其中 $Q,K,V$ 是查询、键和值矩阵[^3]。 - **训练与优化:** - 使用训练框架(如PyTorch Lightning)进行迭代。 - 优化损失函数(如交叉熵 $H(p,q) = -\sum p(x) \log q(x)$),调整超参数(学习率 $\eta$)。 - 集成监控工具(如Prometheus)实时跟踪指标[^4]。 #### 步骤5: 系统集成与测试 将AI模块嵌入完整系统: - **后端开发:** 用Flask或FastAPI构建API接口,连接数据库(如PostgreSQL)。 - **前端集成:** 简单UI使用Streamlit,复杂场景用React或Vue。 - **测试策略:** - 单元测试:验证模型输出(如准确率计算)。 - 端到端测试:模拟用户场景(如客服机器人对话流)。 - 性能测试:确保响应延迟 $< 500\text{ms}$[^4]。 参考任务管理系统案例,测试阶段强调用户反馈循环[^1]。 #### 步骤6: 部署与监控 最后阶段确保工具稳定运行: - **部署:** 使用CI/CD管道(如GitHub Actions),部署到云服务器或Kubernetes集群。 - **监控体系:** 集成Prometheus收集性能指标,ELK日志分析系统排查错误[^4]。 - **优化与迭代:** 基于监控数据调整模型(如A/B测试),参考避指南中的常见问题(如过拟合处理[^4])。 #### 总结 开发AI工具的核心是迭代式流程:从需求定义到监控优化,每个阶段依赖明智的技术选型(如平衡预训练模型与自定义开发)。关键成功因素包括清晰的业务对齐、稳健的开发环境和持续测试。最终,AI工具应交付可衡量的价值,例如在电商客服场景提升响应准确率[^4]。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值