На данный момент я пробовал следующие модели: Meta-Llama-3.1-8B-Instruct-Q8_0.gguf и mistral-7b-instruct-v0.2.Q8_0.gguf.
Я попробовал все, что мог. и использовали Gemini и Chatgpt для показа решений, но, похоже, ничего не работает.
Ответ останавливается, а агент нет: Агент думает...
Я не использую Python для работы с моделью, а вместо этого использую:
LLama;
using LLama.Common;
using LLamaSharp.SemanticKernel;
using LLamaSharp.SemanticKernel.ChatCompletion;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Microsoft.Identity.Client;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
Вопросы
- Как правильно настроить это, чтобы модель генерировала более длинные ответы?
- Является ли это ограничением LLamaSharp?
- Было бы лучше использовать Python? Если да, то как использовать Python вместо LLamaSharp?
"AI": {
"Local": {
"Url": "http://localhost:11434/v1",
"ModelName": "llama3",
"ModelPath": "D:/AI/Models/mistral-7b-instruct-v0.2.Q8_0.gguf",
"ContextSize": 8192, // > LOADING LOCAL GGUF MODEL: {Path}", modelPath);
try
{
var modelParams = new ModelParams(modelPath)
{
ContextSize = localConfig.GetValue("ContextSize", 4096),
GpuLayerCount = localConfig.GetValue("GpuLayerCount", 0),
};
var weights = LLamaWeights.LoadFromFile(modelParams);
var context = weights.CreateContext(modelParams);
var inferenceParams = new InferenceParams() { MaxTokens = 4096 };
logger.LogInformation("Applying session-level MaxTokens override of {MaxTokens} to local model executor.", inferenceParams.MaxTokens);
var executor = new InteractiveExecutor(context);
var chatService = new LLamaSharpChatCompletion(executor);
builder.Services.AddSingleton(chatService);
logger.LogInformation(">> GGUF MODEL LOADED SUCCESSFULLY.");
}
catch (Exception ex)
{
logger.LogCritical(ex, "FATAL ERROR INITIALIZING LLAMASHARP. The application cannot start without a valid local model configuration.");
throw;
}
}
else
{
logger.LogCritical("Local model file not found at path specified in AI:Local:ModelPath. Application cannot start.");
throw new FileNotFoundException("Local GGUF model file not found.", localConfig["ModelPath"]);
}
break;
case "Azure":
var azureConfig = config.GetSection("AI:Azure");
var azureDeploymentName = azureConfig["DeploymentName"];
var azureEndpoint = azureConfig["Endpoint"];
var azureApiKey = azureConfig["ApiKey"];
if (string.IsNullOrEmpty(azureDeploymentName) || string.IsNullOrEmpty(azureEndpoint) || string.IsNullOrEmpty(azureApiKey))
{
throw new InvalidOperationException("Azure OpenAI configuration is incomplete. 'DeploymentName', 'Endpoint', and 'ApiKey' are required in the 'AI:Azure' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with Azure OpenAI. Deployment: {Deployment}", azureDeploymentName);
builder.AddAzureOpenAIChatCompletion(azureDeploymentName, azureEndpoint, azureApiKey);
break;
case "OpenAI":
default:
var openAIConfig = config.GetSection("AI:OpenAI");
var openAIModelId = openAIConfig["ModelId"];
var openAIApiKey = openAIConfig["ApiKey"];
var openAIOrgId = openAIConfig["OrgId"]; // Optional
if (string.IsNullOrEmpty(openAIModelId) || string.IsNullOrEmpty(openAIApiKey))
{
throw new InvalidOperationException("OpenAI configuration is incomplete. 'ModelId' and 'ApiKey' are required in the 'AI:OpenAI' section of appsettings.json.");
}
logger.LogInformation("Configuring LLM with OpenAI. Model: {Model}", openAIModelId);
builder.AddOpenAIChatCompletion(openAIModelId, openAIApiKey, openAIOrgId);
break;
}
return builder;
}
private static string? ResolveModelPath(string? path)
{
if (string.IsNullOrEmpty(path)) return null;
if (File.Exists(path)) return path;
var relative = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, path);
if (File.Exists(relative)) return relative;
var projectRoot = Path.GetFullPath(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "../../../../../"));
var rootPath = Path.Combine(projectRoot, path);
if (File.Exists(rootPath)) return rootPath;
return null;
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... app-on-net
Мобильная версия