Merge branch 'main' into docs/improve-syntax

This commit is contained in:
0xSage 2024-01-06 09:47:23 +08:00 committed by GitHub
commit a747ed24f2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 16 deletions

View File

@ -70,25 +70,25 @@ Jan is an open-source ChatGPT alternative that runs 100% offline on your compute
<tr style="text-align:center"> <tr style="text-align:center">
<td style="text-align:center"><b>Experimental (Nightly Build)</b></td> <td style="text-align:center"><b>Experimental (Nightly Build)</b></td>
<td style="text-align:center"> <td style="text-align:center">
<a href='https://delta.jan.ai/0.4.3-124/jan-win-x64-0.4.3-124.exe'> <a href='https://delta.jan.ai/0.4.3-126/jan-win-x64-0.4.3-126.exe'>
<img src='./docs/static/img/windows.png' style="height:14px; width: 14px" /> <img src='./docs/static/img/windows.png' style="height:14px; width: 14px" />
<b>jan.exe</b> <b>jan.exe</b>
</a> </a>
</td> </td>
<td style="text-align:center"> <td style="text-align:center">
<a href='https://delta.jan.ai/0.4.3-124/jan-mac-x64-0.4.3-124.dmg'> <a href='https://delta.jan.ai/0.4.3-126/jan-mac-x64-0.4.3-126.dmg'>
<img src='./docs/static/img/mac.png' style="height:15px; width: 15px" /> <img src='./docs/static/img/mac.png' style="height:15px; width: 15px" />
<b>Intel</b> <b>Intel</b>
</a> </a>
</td> </td>
<td style="text-align:center"> <td style="text-align:center">
<a href='https://delta.jan.ai/0.4.3-124/jan-mac-arm64-0.4.3-124.dmg'> <a href='https://delta.jan.ai/0.4.3-126/jan-mac-arm64-0.4.3-126.dmg'>
<img src='./docs/static/img/mac.png' style="height:15px; width: 15px" /> <img src='./docs/static/img/mac.png' style="height:15px; width: 15px" />
<b>M1/M2</b> <b>M1/M2</b>
</a> </a>
</td> </td>
<td style="text-align:center"> <td style="text-align:center">
<a href='https://delta.jan.ai/0.4.3-124/jan-linux-amd64-0.4.3-124.deb'> <a href='https://delta.jan.ai/0.4.3-126/jan-linux-amd64-0.4.3-126.deb'>
<img src='./docs/static/img/linux.png' style="height:14px; width: 14px" /> <img src='./docs/static/img/linux.png' style="height:14px; width: 14px" />
<b>jan.deb</b> <b>jan.deb</b>
</a> </a>

View File

@ -14,14 +14,13 @@ const path = join(os.homedir(), 'jan')
export const getBuilder = async (configuration: RouteConfiguration) => { export const getBuilder = async (configuration: RouteConfiguration) => {
const directoryPath = join(path, configuration.dirName) const directoryPath = join(path, configuration.dirName)
try { try {
if (!(await fs.existsSync(directoryPath))) { if (!fs.existsSync(directoryPath)) {
console.debug('model folder not found') console.debug('model folder not found')
return [] return []
} }
const files: string[] = await fs.readdirSync(directoryPath) const files: string[] = fs.readdirSync(directoryPath)
const allDirectories: string[] = [] const allDirectories: string[] = []
for (const file of files) { for (const file of files) {
@ -29,12 +28,12 @@ export const getBuilder = async (configuration: RouteConfiguration) => {
allDirectories.push(file) allDirectories.push(file)
} }
const readJsonPromises = allDirectories.map(async (dirName) => { const results = allDirectories
const jsonPath = join(directoryPath, dirName, configuration.metadataFileName) .map((dirName) => {
return await readModelMetadata(jsonPath) const jsonPath = join(directoryPath, dirName, configuration.metadataFileName)
}) return readModelMetadata(jsonPath)
})
const results = await Promise.all(readJsonPromises) .filter((data) => !!data)
const modelData = results const modelData = results
.map((result: any) => { .map((result: any) => {
try { try {
@ -52,8 +51,12 @@ export const getBuilder = async (configuration: RouteConfiguration) => {
} }
} }
const readModelMetadata = async (path: string) => { const readModelMetadata = (path: string): string | undefined => {
return fs.readFileSync(path, 'utf-8') if (fs.existsSync(path)) {
return fs.readFileSync(path, 'utf-8')
} else {
return undefined
}
} }
export const retrieveBuilder = async (configuration: RouteConfiguration, id: string) => { export const retrieveBuilder = async (configuration: RouteConfiguration, id: string) => {
@ -99,7 +102,7 @@ export const getMessages = async (threadId: string) => {
const threadDirPath = join(path, 'threads', threadId) const threadDirPath = join(path, 'threads', threadId)
const messageFile = 'messages.jsonl' const messageFile = 'messages.jsonl'
try { try {
const files: string[] = await fs.readdirSync(threadDirPath) const files: string[] = fs.readdirSync(threadDirPath)
if (!files.includes(messageFile)) { if (!files.includes(messageFile)) {
throw Error(`${threadDirPath} not contains message file`) throw Error(`${threadDirPath} not contains message file`)
} }