以下是类内的静态变量。用于管理状态及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接口写文字识别,有例子嘛? 大神,请教一下!!