mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-05-20 04:30:17 +09:00
feature: support glm-4v
This commit is contained in:
parent
5f96804f3b
commit
8a22c9d6db
@ -21,9 +21,10 @@ import {
|
|||||||
SpeechOptions,
|
SpeechOptions,
|
||||||
} from "../api";
|
} from "../api";
|
||||||
import { getClientConfig } from "@/app/config/client";
|
import { getClientConfig } from "@/app/config/client";
|
||||||
import { getMessageTextContent } from "@/app/utils";
|
import { getMessageTextContent, isVisionModel } from "@/app/utils";
|
||||||
import { RequestPayload } from "./openai";
|
import { RequestPayload } from "./openai";
|
||||||
import { fetch } from "@/app/utils/stream";
|
import { fetch } from "@/app/utils/stream";
|
||||||
|
import { preProcessImageContent } from "@/app/utils/chat";
|
||||||
|
|
||||||
interface BasePayload {
|
interface BasePayload {
|
||||||
model: string;
|
model: string;
|
||||||
@ -154,9 +155,12 @@ export class ChatGLMApi implements LLMApi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async chat(options: ChatOptions) {
|
async chat(options: ChatOptions) {
|
||||||
|
const visionModel = isVisionModel(options.config.model);
|
||||||
const messages: ChatOptions["messages"] = [];
|
const messages: ChatOptions["messages"] = [];
|
||||||
for (const v of options.messages) {
|
for (const v of options.messages) {
|
||||||
const content = getMessageTextContent(v);
|
const content = visionModel
|
||||||
|
? await preProcessImageContent(v.content)
|
||||||
|
: getMessageTextContent(v);
|
||||||
messages.push({ role: v.role, content });
|
messages.push({ role: v.role, content });
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -168,7 +172,6 @@ export class ChatGLMApi implements LLMApi {
|
|||||||
providerName: options.config.providerName,
|
providerName: options.config.providerName,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const modelType = this.getModelType(modelConfig.model);
|
const modelType = this.getModelType(modelConfig.model);
|
||||||
const requestPayload = this.createPayload(messages, modelConfig, options);
|
const requestPayload = this.createPayload(messages, modelConfig, options);
|
||||||
const path = this.path(this.getModelPath(modelType));
|
const path = this.path(this.getModelPath(modelType));
|
||||||
|
@ -305,6 +305,9 @@ export const VISION_MODEL_REGEXES = [
|
|||||||
/qwen2-vl/,
|
/qwen2-vl/,
|
||||||
/gpt-4-turbo(?!.*preview)/, // Matches "gpt-4-turbo" but not "gpt-4-turbo-preview"
|
/gpt-4-turbo(?!.*preview)/, // Matches "gpt-4-turbo" but not "gpt-4-turbo-preview"
|
||||||
/^dall-e-3$/, // Matches exactly "dall-e-3"
|
/^dall-e-3$/, // Matches exactly "dall-e-3"
|
||||||
|
/glm-4v-plus/,
|
||||||
|
/glm-4v/,
|
||||||
|
/glm-4v-flash/,
|
||||||
];
|
];
|
||||||
|
|
||||||
export const EXCLUDE_VISION_MODEL_REGEXES = [/claude-3-5-haiku-20241022/];
|
export const EXCLUDE_VISION_MODEL_REGEXES = [/claude-3-5-haiku-20241022/];
|
||||||
|
Loading…
Reference in New Issue
Block a user