cnblogs / dashscope-sdk

An unofficial DashScope SDK for .NET maintained by Cnblogs.
MIT License
82 stars 5 forks source link

对模型qwen-long 的支持 #27

Closed qideqian closed 4 months ago

qideqian commented 4 months ago

没有模型 qwen-long 呢?字符串的方式指定模型会有各种各样的问题,不知道是不是官方提供的接口标准不一样。qwen-long模型官方价格要低的多,什么时候加上这个模型的支持呢? https://help.aliyun.com/zh/dashscope/developer-reference/tongyi-thousand-questions-metering-and-billing?spm=5176.28630291.0.0.33e27eb5LRkgaf&disableWebsiteRedirect=true

ikesnowy commented 4 months ago

qwen-long 比较奇怪,文档里用的都是 OpenAI API。对于它自己的 DashScopeSDK 只有一句「Dashscope SDK调用的方式仍然兼容」,文件上传接口也是 OpenAI 的,我再找一下它自己的文件上传接口

image

qideqian commented 4 months ago

是啊,但他们的这个模型使用各种问题,输出好像也不规范

ikesnowy commented 4 months ago

它这个模型应该主打的上传文档后总结,推荐里面也是 FileId 优先,我先用它本来的文件上传接口试试

ikesnowy commented 4 months ago

测试了一下似乎不行,fileid 不互通,必须用它的那个 OpenAI 格式接口上传文件。

ikesnowy commented 4 months ago

在 v0.3.0 里支持了文件上传及对应的文件 Message 构建,示例:

var file = new FileInfo("test.txt");
var uploadedFile = await dashScopeClient.UploadFileAsync(file.OpenRead(), file.Name);

var history = new List<ChatMessage>
{
    new(uploadedFile.Id),   // use array for multiple files, e.g. [file1.Id, file2.Id]
    new("user", "Summarize the content of file.")
}
var parameters = new TextGenerationParameters()
{
    ResultFormat = ResultFormats.Message
};
var completion = await client.GetQWenChatCompletionAsync(QWenLlm.QWenLong, history, parameters);
Console.WriteLine(completion.Output.Choices[0].Message.Content);