智慧聊天機器人原始碼—仿微信介面
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];
}
相關文章
- nuxt.js仿微信App通訊聊天|vue+nuxt聊天|仿微信介面UXJSAPPVue
- electron+vue 仿微信客戶端聊天|electron 仿微信介面|electron 聊天例項Vue客戶端
- vue 高仿微信即時 IM 聊天|仿微信 vue+h5 版|仿微信介面VueH5
- 仿微信APP聊天IM原始碼出售轉讓,可定製APP原始碼
- 如何正確區分人工智慧介面和聊天機器人?人工智慧機器人
- 兩個機器人聊天對話實現原始碼機器人原始碼
- 基於 Flutter+Dart 仿微信 App 聊天應用|flutter 聊天介面FlutterDartAPP
- ChatGPT新玩法來了,微信聊天機器人ChatGPT機器人
- 高仿微信聊天介面長按彈框樣式
- 基於 Flutter+Dart 聊天例項 | Flutter 仿微信介面聊天室FlutterDart
- 使用websocket開發智慧聊天機器人Web機器人
- 智慧聊天機器人CMO的完全指南機器人
- 使用 python 打造一個微信聊天機器人Python機器人
- react 實戰開發|react+redux 仿微信聊天介面ReactRedux
- 基於svelteKit開發仿微信app介面聊天例項APP
- 微信公號 DIY:一小時搭建微信聊天機器人機器人
- 利用雲伺服器搭建自己的微信聊天機器人伺服器機器人
- 智慧聊天對話機器人的對比機器人
- Nuxt+Vue聊天室|nuxt仿微信App介面|nuxt.js聊天例項UXVueAPPJS
- PC微信機器人介面api之微信多開原理機器人API
- AI智慧電話機器人原始碼搭建揭秘!AI機器人原始碼
- 江湖微信公眾號機器人飛單機器人娛樂系統部分原始碼機器人原始碼
- 用AIML開發人工智慧聊天機器人AI人工智慧機器人
- ReactNative 聊天 App 實戰|RN 仿微信介面群聊|朋友圈ReactAPP
- 用python玩微信(聊天機器人,好友資訊統計)Python機器人
- 仿微信APP聊天IM原始碼出售轉讓,高併發運營級APP產品APP原始碼
- 微信機器人機器人
- 自動聊天機器人專案班 [一門課搞定聊天機器人]機器人
- 一圖簡看智慧聊天機器人的設計機器人
- 使用Botkit和Rasa NLU構建智慧聊天機器人機器人
- 用c#快速實現的智慧聊天機器人C#機器人
- 用 Swift 做一個智慧機器人聊天 App (1)Swift機器人APP
- 用 Swift 做一個智慧機器人聊天 App (2)Swift機器人APP
- 用 Swift 做一個智慧機器人聊天 App (4)Swift機器人APP
- angular 版 IM 聊天室|仿微信 App 介面|angular 實戰開發AngularAPP
- PC個人微信機器人sdk介面api之微信多開原理機器人API
- 微信小程式開發—專案實戰之聊天機器人微信小程式機器人
- 運營級仿微信仿陌陌仿快手app原始碼出售轉讓APP原始碼