Skip to content

Commit

Permalink
Merge branch 'azure_model' into dev
Browse files Browse the repository at this point in the history
  • Loading branch information
Caojiahao-Coder committed May 6, 2024
2 parents 47a03fe + 1d4c415 commit 7fc6da6
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 159 deletions.
3 changes: 0 additions & 3 deletions src/assets/models-list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,6 @@ const azure_models: {
}, {
value: 'text-embedding-ada-002',
name: 'text-embedding-ada-002',
}, {
value: 'text-embedding-ada-002',
name: 'text-embedding-ada-002',
}]

export {
Expand Down
41 changes: 10 additions & 31 deletions src/chat.completion/ChatCompletionHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import type { ChatCompletionMessage } from '@/openai/type/chat.completion.messag
import { handleChatCompletionPrecondition } from '@/openai/handler/ChatHandler'
import openAIServices from '@/openai/logic/services'
import ChatCompletionParser from '@/openai/parser/ChatCompletionParser'
import AzureChatCompletionParser from '@/openai/parser/AzureChatCompletionParser'
import ChatCompletionParserByGroq from '@/groq/parser/ChatCompletionParser'
import useEditorStore from '@/store/editor-store'
import handleChatVisionPrecondition from '@/openai/handler/VisionHandler'
Expand Down Expand Up @@ -161,25 +160,13 @@ class ChatCompletionHandler {
if (chatCompletionResponse.data !== null) {
let gptContent = ''

const platform = window.localStorage.getItem('platform') ?? 'openai'
if (platform === 'openai') {
parserResult = await ChatCompletionParser(chatCompletionResponse.data!, (text) => {
gptContent += text
resultCallback(text)
}, (tool_call_id, fname, args, isDone) => {
needFunctionResult = true
functionCallingResultCallback(tool_call_id, fname, args, isDone)
})
}
else {
parserResult = await AzureChatCompletionParser(chatCompletionResponse.data!, (text) => {
gptContent += text
resultCallback(text)
}, (tool_call_id, fname, args, isDone) => {
needFunctionResult = true
functionCallingResultCallback(tool_call_id, fname, args, isDone)
})
}
parserResult = await ChatCompletionParser(chatCompletionResponse.data!, (text) => {
gptContent += text
resultCallback(text)
}, (tool_call_id, fname, args, isDone) => {
needFunctionResult = true
functionCallingResultCallback(tool_call_id, fname, args, isDone)
})

if (parserResult)
markResult = await this.markMessageCompletedAsync(messageInfo, gptContent)
Expand Down Expand Up @@ -213,17 +200,9 @@ class ChatCompletionHandler {

let title = ''

const platform = window.localStorage.getItem('platform') ?? 'openai'
if (platform === 'openai') {
await ChatCompletionParser(chatCompletionResponse.data!, (text) => {
title += text
}, () => { })
}
else {
await AzureChatCompletionParser(chatCompletionResponse.data!, (text) => {
title += text
}, () => { })
}
await ChatCompletionParser(chatCompletionResponse.data!, (text) => {
title += text
}, () => { })
this.updateConversationTitleByIdAsync(title, messageInfo.conversation_id)
}

Expand Down
35 changes: 18 additions & 17 deletions src/openai/logic/services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,26 @@ import chatFunctionCallingController from '@/chat.function.calling/ChatFunctionC
import type { ChatCompletionMessage } from '@/openai/type/chat.completion.message'
import type { OpenAIPayloadInfo } from '@/openai/type/openai.payload'
import type { OpenAIRequestResult } from '@/openai/type/openai.response.result'
import { apiKey, azureApiKey, azureBaseURL, baseURL, gptModel, temperature, topP } from '@/store/localstorage'
import { apiKey, azureApiKey, azureBaseURL, azureModel, baseURL, gptModel, temperature, topP } from '@/store/localstorage'

class OpenAIServices {
private controller = new AbortController()

private async getOpenAIPayload(): Promise<OpenAIPayloadInfo | null> {
return {
apikey: apiKey.value,
model: gptModel.value,
} as OpenAIPayloadInfo
const platform = window.localStorage.getItem('platform') ?? 'openai'

if (platform === 'openai') {
return {
apikey: apiKey.value,
model: gptModel.value,
} as OpenAIPayloadInfo
}
else {
return {
apikey: azureApiKey.value,
model: azureModel.value,
} as OpenAIPayloadInfo
}
}

public cancelRequest() {
Expand Down Expand Up @@ -79,26 +89,17 @@ class OpenAIServices {
const fetchPayload = {
headers: {
'Content-Type': 'application/json',
'Authorization': '',
'api-key': '',
'Authorization': openAIPayload.apikey,
'api-key': openAIPayload.apikey,
},
method: 'POST',
body: fetchBody,
signal,
}

let url = ''

const platform = window.localStorage.getItem('platform') ?? 'openai'

if (platform === 'openai') {
url = `${baseURL.value}chat/completions`
fetchPayload.headers.Authorization = `Bearer ${openAIPayload?.apikey}`
}
else {
url = `${azureBaseURL.value}openai/deployments/gpt3-turbo/chat/completions?api-version=2024-02-15-preview`
fetchPayload.headers['api-key'] = azureApiKey.value
}
const url = platform === 'openai' ? `${baseURL.value}chat/completions` : `${azureBaseURL.value}openai/deployments/gpt3-turbo/chat/completions?api-version=2024-02-15-preview`

return new Promise<OpenAIRequestResult>((resolve) => {
fetch(url, fetchPayload)
Expand Down
75 changes: 0 additions & 75 deletions src/openai/parser/AzureChatCompletionParser.ts

This file was deleted.

5 changes: 3 additions & 2 deletions src/openai/parser/ChatCompletionParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@ export default async function ChatCompletionParser(response: Response, callback:

const myData = parserStreamText(a.trim())

if (!myData)
if (!myData || !myData.choices || myData.choices.length === 0)
return

isDone = a.startsWith('data: [DONE]') || myData.choices[0].finish_reason === 'stop'
const finish_reason: string = myData.choices[0]?.finish_reason ?? ''
isDone = a.startsWith('data: [DONE]') || (finish_reason === 'stop')

const value = myData.choices[0].delta?.content ?? ''
if (value && value.length > 0)
Expand Down
31 changes: 0 additions & 31 deletions src/openai/type/azure.completion.chunk.ts

This file was deleted.

0 comments on commit 7fc6da6

Please sign in to comment.