【.ner core】 配置使用百度编辑器

流程参照:胡枫/UEditorNetCore

# 关于UEditorNetCore


百度在线编辑器UEditor在ASP.NET Core下的服务端,使用简单,易于扩展。   
相关文章:http://www.cnblogs.com/durow/p/6116393.html    
UEditor官网:http://ueditor.baidu.com/website/index.html    
UEditor源代码:https://github.com/fex-team/ueditor   

 
# 安装


```
Install-Package UEditorNetCore
```

# 使用


## 1.在Startup.cs的ConfigureServices方法中添加UEditorNetCore服务


``` C#
public void ConfigureServices(IServiceCollection services)
{
    //第一个参数为配置文件路径,默认为项目目录下config.json
    //第二个参数为是否缓存配置文件,默认false
    services.AddUEditorService()
    services.AddMvc();
}
```

## 2.添加Controller用于处理来自UEditor的请求


``` C#
[Route("api/[controller]")] //配置路由
public class UEditorController : Controller
{
    private UEditorService ue;
    public UEditorController(UEditorService ue)
    {
        this.ue = ue;
    }

    public void Do()
    {
        ue.DoAction(HttpContext);
    }
}
```

## 3.修改前端配置文件ueditor.config.js


修改serverUrl为第2步Controller中配置的路由,使用例子中的路由按照以下配置:
``` json
serverUrl:"/api/UEditor"
```

## 4.修改服务端配置config.json


上传类的操作需要配置相应的PathFormat和Prefix,在示例中部署在web根目录,因此Prefix都设置为"/"。使用时要根据具体情况配置。
例如示例中图片上传的配置如下:
``` json
"imageUrlPrefix": "/", /* 图片访问路径前缀 */
"imagePathFormat": "upload/image/{yyyy}{mm}{dd}/{time}{rand:6}", 
```

## 5.添加javascript引用


``` html
<script type="text/javascript" charset="utf-8" src="~/lib/ueditor/ueditor.config.js"></script>
<script type="text/javascript" charset="utf-8" src="~/lib/ueditor/ueditor.all.min.js"> </script>
<script type="text/javascript" charset="utf-8" src="~/lib/ueditor/lang/zh-cn/zh-cn.js"></script>
```

## 6.页面初始化组件

页面DOM

<textarea id="content" name="content" type="text/plain" style="width:100%;height:400px;"></textarea>

初始化js

var ue = UE.getEditor('content', {
    autoHeightEnabled: true,
    initialFrameHeight: 350,//高度200像素(注:这里的高指内容区域的高度,不包含头部和底部的设置)
    initialFrameWidth: '100%',//宽度100%
});

赋值JS

UE.getEditor('content').setContent(data.content);//data.content为文本内容

取值JS

UE.getEditor('content').getContent();

# 扩展


如果需要扩展action,可以在Startup.cs的ConfigureServices方法中进行。


## 添加新的action


``` C#
public void ConfigureServices(IServiceCollection services)
{
    services.AddUEditorService()
        .Add("test", context =>
        {
            context.Response.WriteAsync("from test action");
        })
        .Add("test2", context =>
        {
            context.Response.WriteAsync("from test2 action");
        });
    services.AddMvc();
}
```
以上代码扩展了名字为test和test2两个action,作为示例仅仅返回了字符串。在扩展时可以读取Config配置,并使用已有的Handler。

## 覆盖现有action


上面的Add方法除了添加新action外还可以覆盖现有action。例如现有的action可能不符合你的要求,可以Add一个同名的action覆盖现有的。

## 移除action


如果要移除某个action,可以使用Remove方法。
``` C#
public void ConfigureServices(IServiceCollection services)
{
    services.AddUEditorService()
        .Remove("test");
    services.AddMvc();
}
```
以上代码移除了名为test的action。


 

<think>好的,我需要帮助用户在Jupyter Notebook中集成和使用Rasa。首先,我得回忆一下Rasa是什么,它是一个开源的对话机器人框架,主要用于构建上下文感知的聊天机器人。用户可能想在Jupyter中进行开发和测试,可能是为了结合数据分析或机器学习流程。 首先,用户需要在Jupyter环境中安装Rasa。根据引用[1],他们可能已经安装了常用的Python包,但Rasa需要单独安装。我应该提醒用户使用pip或者conda安装Rasa,注意版本兼容性,可能需要指定版本号以避免依赖冲突。 接下来,创建Rasa项目。通常Rasa项目是通过命令行初始化的,但在Jupyter中可能需要用魔术命令,比如!rasa init,或者通过Python代码调用子进程来执行这些命令。需要指导用户如何在Notebook中运行命令行指令,例如使用!符号。 然后,配置Rasa的核心组件,比如NLU数据和对话管理。用户需要编辑domain.yml、stories.yml、nlu.yml等文件。在Jupyter中,用户可以直接创建和编辑这些文本文件,或者使用内置的文本编辑器。同时,可能需要使用Rasa的训练命令来训练模型,同样通过!rasa train来执行。 训练完成后,用户可能想在Notebook中测试对话。这时候需要启动Rasa的shell或者使用API进行交互。可以建议用户使用!rasa shell来启动对话界面,或者编写Python代码调用Rasa的API,发送消息并获取响应。这部分可能需要用到异步处理,或者在单独的cell中运行shell命令。 另外,引用[3]提到使用transformer模型进行NER,可能用户想结合Rasa的NLU组件和自定义模型。这时候可能需要配置Rasa的pipeline,使用Hugging Face的Transformers库,例如在config.yml中设置pipeline为TransformerNLP。需要确保相关依赖已安装,并正确配置。 还有,用户可能需要将Rasa与Jupyter的数据分析功能结合,比如处理用户反馈数据,进行模型评估。引用[2]提到使用交叉验证和参数调优,可能用户希望用类似的方法优化Rasa模型。可以建议他们在Notebook中编写训练脚本,调用Rasa的训练函数,并进行超参数调整,或者使用Notebook的可视化功能展示训练结果和评估指标。 还需要注意Jupyter的环境管理,例如虚拟环境的激活,确保Rasa安装在正确的内核中。用户可能在安装后遇到依赖问题,需要指导他们解决常见的依赖冲突,比如TensorFlow版本问题,或者使用虚拟环境来隔离项目。 最后,集成后的测试和调试。用户可能需要在Notebook中运行动作服务器或自定义动作,这时候需要编写Python代码并确保服务器正确运行。可能需要使用多线程或在不同的cell中启动服务器和主程序。 总结步骤:安装Rasa,初始化项目,配置和训练模型,测试对话,集成自定义组件,结合数据分析,处理依赖和环境问题,测试和调试。需要分步骤详细说明,并提供代码示例,同时注意可能的常见问题。</think>### 在Jupyter Notebook中集成和使用Rasa的步骤 #### 1. **安装Rasa和相关依赖** - 在Jupyter Notebook中,通过以下命令安装Rasa: ```python !pip install rasa ``` 若遇到依赖冲突,可指定版本(如`rasa==3.6.15`)或使用虚拟环境[^1]。 #### 2. **初始化Rasa项目** - 在Notebook中运行初始化命令: ```python !rasa init --no-prompt # 跳过交互式提示 ``` 这会生成默认的Rasa项目结构(`data/`、`actions/`、`config.yml`等)。 #### 3. **编辑配置文件与训练模型** - **配置NLU数据**:编辑`data/nlu.yml`,定义意图和示例语句: ```yaml version: "3.1" nlu: - intent: greet examples: | - 你好 - 早上好 ``` - **训练模型**: ```python !rasa train ``` #### 4. **测试对话系统** - **命令行测试**: ```python !rasa shell # 启动交互式对话界面 ``` - **通过API调用**(在Notebook中直接发送请求): ```python from rasa.core.agent import Agent agent = Agent.load("models/20240301-103445.tar.gz") response = await agent.handle_text("你好") print(response[0]['text']) ``` #### 5. **集成自定义动作** - 编写自定义动作(如`actions/actions.py`)后,启动动作服务器: ```python !rasa run actions --port 5055 ``` - 在`domain.yml`中声明动作: ```yaml actions: - my_custom_action ``` #### 6. **结合数据分析(如NER优化)** - 若需使用Transformer模型优化实体识别(如引用[3]提到的NER),修改`config.yml`的NLU管道: ```yaml pipeline: - name: HFTransformersNLP model_name: "bert-base-chinese" - name: LanguageModelTokenizer - name: LanguageModelFeaturizer ``` 需额外安装依赖: ```python !pip install transformers ``` --- ### 代码示例 ```python # 在Notebook中训练并测试Rasa模型 !rasa train agent = Agent.load("models/20240301-103445.tar.gz") # 异步调用测试 import asyncio async def test_rasa(): response = await agent.handle_text("我想订机票") print(response[0]['text']) await test_rasa() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值