Maui 调用文心一言的API实现的聊天功能1

2023-12-13 08:01:38

10年以后一直开发PHP或JAVA,再次拿起visual studio后,感叹良多,真是好用IDE。以前用的是2010现在也出现了2022,同时开发的功能也强大无比。python,nodejs.unity 当然godot也支持C#.同时maui的出现,能开发ios以及android,整个是一个全干开发的好工具。以下代码东拼西凑的,只是一个过程的记录。让我写出更深层的东东,我无此能力,做为生存努力的工具,我会用就行了。

界面效果

在这里插入图片描述
在这里插入图片描述

接口的调用

一言的api有C#的调用,试了几次,不能成功,就改为调用C#的net自有的HttpClient进行开发。

  public static async Task<string> getAnswer(string question)
  {
      var url = $"https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/aquilachat_7b?access_token={await GetAccessToken()}";

      var payload = JsonConvert.SerializeObject(new
      {
          messages = new[]
          {
              new { role = "user", content = question }
          }
      });

      using (var client = new HttpClient())
      {
          var content = new StringContent(payload, Encoding.UTF8, "application/json");
          var response = await client.PostAsync(url, content);

          if (response.IsSuccessStatusCode)
          {
              var responseContent = await response.Content.ReadAsStringAsync();
              var dictObj = JsonConvert.DeserializeObject<dynamic>(responseContent);
              return dictObj.result;
          }
          else
          {
              Console.WriteLine($"HTTP请求失败: {response.StatusCode}");
              return null;
          }
      }
  }




      private static async Task<string> GetAccessToken()
      {
          var url = "https://aip.baidubce.com/oauth/2.0/token";
          using (var client = new HttpClient())
          {
              var parameters = new FormUrlEncodedContent(new[]
              {
                          new KeyValuePair<string, string>("grant_type", "client_credentials"),
                          new KeyValuePair<string, string>("client_id", sAPI_KEY),
                          new KeyValuePair<string, string>("client_secret", sSECRET_KEY)
                      });
              var response = await client.PostAsync(url, parameters);
              if (response.IsSuccessStatusCode)
              {
                  var content = await response.Content.ReadAsStringAsync();
                  var result = JsonConvert.DeserializeObject<dynamic>(content);
                  return result.access_token;
              }
              else
              {
                  Console.WriteLine($"HTTP请求失败: {response.StatusCode}");
                  return null;
              }
          }
      }
   

设置界面

在这里插入图片描述

文章来源:https://blog.csdn.net/hzether/article/details/134908264
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。