unity Http连接阿里云百炼-通义千问VL视觉理解大模型
·
unity 连接阿里云百炼-通义千问VL视觉理解大模型
流程:
https://bailian.console.aliyun.com/#/home
注册账号,实名认证,获得免费180额度,获取Key

using Newtonsoft.Json;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using UnityEngine;
using UnityEngine.Networking;
public class My_QWTurbo : MonoBehaviour
{
[SerializeField] protected string url = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";
/// <summary>
/// api key
/// </summary>
[SerializeField] private string api_key = "YOUR_API_KEY";
/// <summary>
/// api model
/// </summary>
[SerializeField] private string model = "qwen-vl-plus";
/// <summary>
/// 图片路径
/// </summary>
[SerializeField] private string imagePath = @"E:\UnityProject\mandala\Shinn-SteamVR-TK-main\mandala\Assets\Texture\11.png"; // 指定图片路径
void Start()
{
// 调用 PostMsg 函数
PostMsg("这是什么", ResponseCallback);
}
void ResponseCallback(string response)
{
// 处理响应
UnityEngine.Debug.Log("服务器响应: " + response);
}
// 发送消息
public void PostMsg(string _msg, Action<string> _callback)
{
StartCoroutine(Request(_msg, _callback));
}
/// <summary>
/// 调用接口
/// </summary>
/// <param name="_postWord"></param>
/// <param name="_callback"></param>
/// <returns></returns>
public IEnumerator Request(string _postWord, Action<string> _callback)
{
UnityEngine.Debug.Log("输入问题:" + _postWord);
using (UnityWebRequest request = new UnityWebRequest(url, "POST"))
{
// 将本地图片文件读取并编码为Base64格式
byte[] imageBytes = File.ReadAllBytes(imagePath);
string base64Image = Convert.ToBase64String(imageBytes);
string imageBase64Data = $"data:image/png;base64,{base64Image}";
// 配置消息内容
MessageData message0 = new MessageData
{
role = "user",
content = new MessageContent[]
{
new MessageContent { type = "text", text = _postWord },
new MessageContent { type = "image_url", image_url = new ImageUrl { url = imageBase64Data } }
}
};
var requestBody = new
{
model = this.model,
messages = new[] { message0 }
};
string jsonData = JsonConvert.SerializeObject(requestBody);
UnityEngine.Debug.Log("Request JSON: " + jsonData);
byte[] data = System.Text.Encoding.UTF8.GetBytes(jsonData);
request.uploadHandler = new UploadHandlerRaw(data);
request.downloadHandler = new DownloadHandlerBuffer();
request.SetRequestHeader("Content-Type", "application/json");
request.SetRequestHeader("Authorization", $"Bearer {api_key}");
yield return request.SendWebRequest();
if (request.isNetworkError || request.isHttpError)
{
UnityEngine.Debug.LogError(request.error);
}
else
{
UnityEngine.Debug.Log("Response: " + request.downloadHandler.text);
_callback(request.downloadHandler.text);
}
}
}
#region 发送数据包
protected class MessageData
{
public string role { get; set; }
public MessageContent[] content { get; set; }
}
protected class MessageContent
{
public string type { get; set; }
public string text { get; set; }
public ImageUrl image_url { get; set; }
}
protected class ImageUrl
{
public string url { get; set; }
}
#endregion
}

Url 填写你需要访问模型的Url 注意是http访问
返回结果

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐



所有评论(0)