以下是类内的静态变量。用于管理状态及TOKEN信息,SESSION信息。
// 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存 // 返回token示例 public static readonly String TOKEN = getAccessToken(); public static bool IsFinishedThisUnit; private static string sessionId=""; private static bool first=true;
下面是一段 c#调用百度API接口,获取临时token值。
public static string getAccessToken() { String clientId = 【这里填入APPID】; String clientSecret = 【这里填入APPSECRET】; String authHost = "https://aip.baidubce.com/oauth/2.0/token"; HttpClient client = new HttpClient(); List> paraList = new List>(); paraList.Add(new KeyValuePair("grant_type", "client_credentials")); paraList.Add(new KeyValuePair("client_id", clientId)); paraList.Add(new KeyValuePair("client_secret", clientSecret)); HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result; String result = response.Content.ReadAsStringAsync().Result; //Console.WriteLine(result); JObject res = JObject.Parse(result); return res["access_token"].ToString(); }
再根据TOKEN调用UNIT通用API接口获取返回json字符串并分析字符串指向的方法
public static JObject Unit_Send(string Content) { IsFinishedThisUnit = false; string host = "https://aip.baidubce.com/rpc/2.0/solution/v1/unit_utterance?access_token=" + TOKEN; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(host); request.Method = "post"; request.ContentType = "application/json"; request.KeepAlive = true; string str = "{\"scene_id\":【这里填入UNIT场景ID】,\"query\":\"" + Content + "\", \"session_id\":\"" + sessionId + "\"}"; // json格式 byte[] buffer = Encoding.UTF8.GetBytes(str); request.ContentLength = buffer.Length; request.GetRequestStream().Write(buffer, 0, buffer.Length); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8); JObject res = JObject.Parse(reader.ReadToEnd()); if (res["error_code"] == null) { sessionId = res["result"]["session_id"].ToString(); if (res["result"]["action_list"][0]["action_type"]["act_type"].ToString() == "satisfy") { //意图完成 IsFinishedThisUnit = true; return res; } else if (res["result"]["action_list"][0]["action_type"]["act_type"].ToString() == "clarify") { //意图未完成 Console.Write(res["result"]["action_list"][0]["say"].ToString()); return null; } else { //未知意图 可加本地日志记录逻辑 以后期扩充样本集 Console.Write("你到底想干嘛?"); return null; } } else { return null; } } }
TOP
切换版块
你多大呀
是啊,我也是十几年前用的这些工具
Delphi好像已经没有谁用了
是啊,不过还是很怀念当年想办法各种优化的时候
那个连百度都没有的年代
这几个还真是一点都不熟悉 有些框架确实强大
现在基本都不怕大小了 一个游戏都几十g 程序大就大呗 稳定就好
现在是这样,以前用VC编译成机器的原生可执行程序,可以编译的很小的。
好像任何语言都需要平台的。你像用python也需要python运行库,用java也需要java j什么的好像叫jdk。哪怕js也要浏览器支撑、这是正常滴
.NetFramework很讨厌的一点就是编译出来的东西很大
是啊,怀念当年用 VC++,VB,Delphi直接编译原生程序的年代。现在的VC++好像生成的也是.Net的ByteCode
C#本身就是寄生在.Net之上的语言喔
C# 现在编译的程序必须装.Net Framework吧
标题里写了喔。c# windows平台开发
你一般用什么平台开发呢
这是很老的代码版本了,请以文档中心为准
我这边执行的时候会返回error_code:0,有人遇到过吗。。
文字识别可以去文字识别板块看一看喔
什么样的文字识别.文字很多细分的类别
C#利用api接口写文字识别,有例子嘛? 大神,请教一下!!