feat: 添加对自定义 baseURL 的支持
- 在 config.ts 中添加 baseURL 解析器 - 在 openai.ts 中更新 createChatCompletion 和 generateCommitMessage 函数 - 在 aicommits.ts 中传递 baseURL 参数 - 支持使用自定义 API 端点替代默认的 OpenAI API
This commit is contained in:
2284
package-lock.json
generated
Normal file
2284
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@@ -73,7 +73,8 @@ export default async (
|
||||
config['max-length'],
|
||||
config.type,
|
||||
config.timeout,
|
||||
config.proxy
|
||||
config.proxy,
|
||||
config.baseURL
|
||||
);
|
||||
} finally {
|
||||
s.stop('Changes analyzed');
|
||||
|
||||
@@ -115,6 +115,21 @@ const configParsers = {
|
||||
|
||||
return parsed;
|
||||
},
|
||||
baseURL(url?: string) {
|
||||
if (!url || url.length === 0) {
|
||||
return 'api.openai.com';
|
||||
}
|
||||
|
||||
parseAssert('baseURL', /^https?:\/\/.+/.test(url), 'Must be a valid URL');
|
||||
|
||||
// 如果用户输入完整URL,提取域名部分
|
||||
try {
|
||||
const urlObj = new URL(url);
|
||||
return urlObj.hostname;
|
||||
} catch {
|
||||
return url;
|
||||
}
|
||||
},
|
||||
} as const;
|
||||
|
||||
type ConfigKeys = keyof typeof configParsers;
|
||||
|
||||
@@ -71,10 +71,12 @@ const createChatCompletion = async (
|
||||
apiKey: string,
|
||||
json: CreateChatCompletionRequest,
|
||||
timeout: number,
|
||||
proxy?: string
|
||||
proxy?: string,
|
||||
baseURL?: string
|
||||
) => {
|
||||
const hostname = baseURL || 'api.openai.com';
|
||||
const { response, data } = await httpsPost(
|
||||
'api.openai.com',
|
||||
hostname,
|
||||
'/v1/chat/completions',
|
||||
{
|
||||
Authorization: `Bearer ${apiKey}`,
|
||||
@@ -139,7 +141,8 @@ export const generateCommitMessage = async (
|
||||
maxLength: number,
|
||||
type: CommitType,
|
||||
timeout: number,
|
||||
proxy?: string
|
||||
proxy?: string,
|
||||
baseURL?: string
|
||||
) => {
|
||||
try {
|
||||
const completion = await createChatCompletion(
|
||||
@@ -165,7 +168,8 @@ export const generateCommitMessage = async (
|
||||
n: completions,
|
||||
},
|
||||
timeout,
|
||||
proxy
|
||||
proxy,
|
||||
baseURL
|
||||
);
|
||||
|
||||
return deduplicateMessages(
|
||||
|
||||
Reference in New Issue
Block a user