java微信聊天机器人源码_智能聊天机器人源码—仿微信界面

enter code here这是一个IOS智能聊天机器人的源码,采用了仿微信的风格设计,调用的是图灵机器人的API,能够实现智能聊天、讲故事、讲笑话、查天气、查公交等丰富的功能。还可以去图灵机器人的官网上体验产品http://www.tuling123.com/openapi/cloud/proexp.jsp

1. 仿微信界面: UITableView

//add UItableView

self.tableView=[[UITableView alloc]initWithFrame:CGRectMake(0, 44, self.view.frame.size.width, self.view.frame.size.height-88) style:UITableViewStylePlain];

[self.tableView registerClass:[ChartCell class] forCellReuseIdentifier:cellIdentifier];

self.tableView.separatorStyle=UITableViewCellSeparatorStyleNone;

self.tableView.allowsSelection = NO;

self.tableView.backgroundView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"chat_bg_default.jpg"]];

self.tableView.dataSource=self;

self.tableView.delegate=self;

[self.view addSubview:self.tableView];

2.仿微信界面:KeyBordVIew

//add keyBorad

self.keyBordView=[[KeyBordVIew alloc]initWithFrame:CGRectMake(0, self.view.frame.size.height-44, self.view.frame.size.width, 44)];

self.keyBordView.delegate=self;

[self.view addSubview:self.keyBordView];

//注册通知, 键盘收起, 弹出

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardShow:) name:UIKeyboardWillShowNotification object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardHide:) name:UIKeyboardWillHideNotification object:nil];

//键盘弹出响应

-(void)keyboardShow:(NSNotification *)note

{

CGRect keyBoardRect=[note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

CGFloat deltaY=keyBoardRect.size.height;

[UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

self.view.transform=CGAffineTransformMakeTranslation(0, -deltaY);

}];

}

//键盘收起响应

-(void)keyboardHide:(NSNotification *)note

{

[UIView animateWithDuration:[note.userInfo[UIKeyboardAnimationDurationUserInfoKey] floatValue] animations:^{

self.view.transform = CGAffineTransformIdentity;

}];

}

3. 图灵机器人API的获取

//API申请地址:www.tuling123.com

//API体验地址:http://www.tuling123.com/openapi/cloud/proexp.jsp

//在注册之前,需要注册图灵机器人API并获取自己的APIkey,然后才能够进行下一步的开发工作。

4.图灵机器人API调用

//每当编辑完问题后

//1. 显示自己的问题 messageType=1

//2. 调用API,返回结果

-(void)KeyBordView:(KeyBordVIew *)keyBoardView textFiledReturn:(UITextField *)textFiled

{

//显示自己的问题

ChartCellFrame *cellFrame=[[ChartCellFrame alloc]init];

ChartMessage *chartMessage=[[ChartMessage alloc]init];

chartMessage.icon=@"icon01.png";

chartMessage.messageType=1;

chartMessage.content=textFiled.text;

cellFrame.chartMessage=chartMessage;

[self.cellFrames addObject:cellFrame];

[self.tableView reloadData];

//滚动到当前行

[self tableViewScrollCurrentIndexPath];

//利用用户问题, 查询结果

//API请求格式。 具体格式见图灵官网

//6c2cfaf7a7f088e843b550b0c5b89c26 替换成你申请的key即可

NSString* urlString = [NSString stringWithFormat:@"http://www.tuling123.com/openapi/api?key=6c2cfaf7a7f088e843b550b0c5b89c26&&info=%@", textFiled.text];

//NSUTF8StringEncoding编码。 避免中文错误

urlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];

//调用API

NSURL *url = [NSURL URLWithString:urlString];

testRequest = [ASIHTTPRequest requestWithURL:url];

[testRequest setDelegate:self];

[testRequest startAsynchronous];

textFiled.text=@"";

myTextField = textFiled;

}

#pragma mark - 返回机器人回答

//调用API完毕, 返回图灵回答结果

//1. 收起键盘

//2. 显示回答内容

- (void)requestFinished:(ASIHTTPRequest *)request

{

//收起键盘

[myTextField resignFirstResponder];

// 当以文本形式读取返回内容时用这个方法

// 解析返回的json数据

NSString *responseString = [request responseString];

self.testDic = [responseString objectFromJSONString];

self.testArr = [testDic objectForKey:@"text"];

//显示回答内容

ChartCellFrame *cellFrame=[[ChartCellFrame alloc]init];

ChartMessage *chartMessage=[[ChartMessage alloc]init];

chartMessage.icon=@"icon02.png";

chartMessage.messageType=0;

chartMessage.content=[NSString stringWithFormat:@"%@", self.testArr];

cellFrame.chartMessage=chartMessage;

[self.cellFrames addObject:cellFrame];

[self.tableView reloadData];

//滚动到当前行

[self tableViewScrollCurrentIndexPath];

}

// API请求失败

- (void)requestFailed:(ASIHTTPRequest *)request

{

NSError *error = [request error];

NSLog(@"error --- %@",error);

UIAlertView *alert_ = [[UIAlertView alloc]initWithTitle:@"提示" message:@"无网络可用,请检查网络状态" delegate:self cancelButtonTitle:@"知道了" otherButtonTitles: nil];

[alert_ show];

}

b22950e4211f3a7b8b6f4d737f703041.png

245bac17225d3b77fbddb11d2ca52c8c.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信聊天机器人可以为用户提供快速简便的交互体验,而自己编写机器人源码则可以为开发者提供更高度的定制化能力。目前市面上已有一些比较成熟的bot微信聊天机器人源码,开发者可以在这些基础上进行二次开发和定制化。 一个较为完整的bot微信聊天机器人源码应该包括以下几个部分:自然语言处理(NLP)引擎、接口调用模块、规则引擎、后台管理界面和数据库。 其中,自然语言处理引擎是该机器人的核心组成部分,可以将用户输入的信息进行分析、识别、分类等工作。接口调用模块则是连接机器人和微信公众平台的桥梁,它可以对接微信平台提供的接口,接受用户输入和回应。 规则引擎是机器人的灵魂,通过对机器人的业务规则进行编写和实现,保障机器人在具体的业务场景中能够正常、高效地工作。后台管理界面则是为机器人管理者提供的一种管理方式,他们可以通过这个界面对机器人的管理和运行状态进行实时监控和调整。最后,数据库则是存储机器人相关数据的存储介质,它可以支持机器人对历史数据进行分析和挖掘,为机器人未来的可发展性提供支持。 总体而言,bot微信聊天机器人源码在不断地完善和更新,为了能够尽快推出高效性能的机器人,开发者需要加强对自然语言处理、大数据分析等技术的运用和研究,以期取得更好的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值