• システム開発に関わる内容をざっくりと書いていく

ChatGPTにエクセルファイルを読み込ませる【C#】

ChatGPTにエクセルファイルをプロンプトに送り、感想などの返答をもらう:APIを想定

[HttpPost("FromExcel")]
public async Task<string?> GetResult(IFormFile postedFile)
{
    StringBuilder sb = new();
    using var stream = postedFile.OpenReadStream();
    var reader = ExcelReaderFactory.CreateOpenXmlReader(stream);

    while (reader.Read())
    {
        for (int col = 0; col < reader.FieldCount; col++)
        {
            Debug.WriteLine(reader.GetValue(col));
            sb.Append(reader.GetValue(col));
            sb.Append(',');
        }
        sb.Append(System.Environment.NewLine);
    }
    return await GetChatGptResponse("以下のドキュメントについての感想をください" + sb.ToString());
}

private async Task<string?> GetChatGptResponse(string prompt)
{
    var openAiService = new OpenAIService(new OpenAiOptions()
    {
        ApiKey = "yourApiKey"
    });
    Console.WriteLine(prompt);
    var result = await openAiService.Completions.CreateCompletion(new CompletionCreateRequest()
    {
        Prompt = prompt,
        Echo = false,
        MaxTokens = 300 // about
    }, Models.TextDavinciV3);
    if (result.Successful)
    {
        return result.Choices.Select(x => x.Text).FirstOrDefault();
    }
    else
        return null;
}