mirror of
https://github.com/nomic-ai/gpt4all.git
synced 2024-10-01 01:06:10 -04:00
25 lines
750 B
C#
25 lines
750 B
C#
|
namespace Gpt4All;
|
|||
|
|
|||
|
public static class ModelFileUtils
|
|||
|
{
|
|||
|
private const uint GPTJ_MAGIC = 0x67676d6c;
|
|||
|
private const uint LLAMA_MAGIC = 0x67676a74;
|
|||
|
private const uint MPT_MAGIC = 0x67676d6d;
|
|||
|
|
|||
|
public static ModelType GetModelTypeFromModelFileHeader(string modelPath)
|
|||
|
{
|
|||
|
using var fileStream = new FileStream(modelPath, FileMode.Open);
|
|||
|
using var binReader = new BinaryReader(fileStream);
|
|||
|
|
|||
|
var magic = binReader.ReadUInt32();
|
|||
|
|
|||
|
return magic switch
|
|||
|
{
|
|||
|
GPTJ_MAGIC => ModelType.GPTJ,
|
|||
|
LLAMA_MAGIC => ModelType.LLAMA,
|
|||
|
MPT_MAGIC => ModelType.MPT,
|
|||
|
_ => throw new ArgumentOutOfRangeException($"Invalid model file. magic=0x{magic:X8}"),
|
|||
|
};
|
|||
|
}
|
|||
|
}
|