This commit is contained in:
2026-04-15 00:34:05 +03:30
parent 5b90d694dc
commit 62c54a3d4c
7 changed files with 68 additions and 19 deletions
+18 -14
View File
@@ -45,6 +45,7 @@ namespace xAiService.Services
/// Generated Response ...
/// </summary>
/// <param name="prompt"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public Task<ChatResponse> GetResponseAsync(
@@ -60,6 +61,7 @@ namespace xAiService.Services
/// Generated Response ...
/// </summary>
/// <param name="prompt"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task<string> GetTextResponseAsync(
@@ -99,9 +101,10 @@ namespace xAiService.Services
/// Generate Text Response Stream ...
/// </summary>
/// <param name="prompt"></param>
/// <param name="userInfo"></param>
/// <param name="cancellationToken"></param>
/// <returns></returns>
public async Task GetTextReponseStreamAsync(
public IAsyncEnumerable<string> GetTextReponseStreamAsync(
string prompt,
XUserClaimsInfoDto userInfo,
CancellationToken cancellationToken = default
@@ -109,13 +112,22 @@ namespace xAiService.Services
{
//
// Validate Args ...
ValidationProvider.NotEmpty(prompt);
ValidationProvider
.GroupValidationBuilder()
.AddNotEmpty(prompt)
.AddNotNull(userInfo)
.AddNotZero(userInfo.ExpiresAt)
.AddNotEmpty(userInfo.AccessToken)
.AddNotEmpty(userInfo.RefreshToken)
.ValidateGroup();
//
var client = GetRestClient(userInfo);
var request = GetRestRequet(
endpoint: XAiApiEndpoint.Ask,
var tokens = ToTokenResponse(userInfo);
var result = StreamData<string>(
tokens: tokens,
addXPoweredValue: true,
endpoint: XAiApiEndpoint.Stream,
cancellationToken: cancellationToken,
queryStrings: new Dictionary<string, string>
{
{ XAiApiQueryParams.Prompt, prompt }
@@ -123,15 +135,7 @@ namespace xAiService.Services
);
//
var response = await RunRestRequest<string>(
client,
request,
XHttpMethod.GET,
cancellationToken: cancellationToken
);
//
return response;
return result;
}
#endregion
}