refactor: move websearch provider code to providers folder
This commit is contained in:
parent
e41df917b4
commit
95df69ff82
@ -6,7 +6,7 @@ import { PROVIDER_CONFIG } from '@renderer/config/providers'
|
|||||||
import { useTheme } from '@renderer/context/ThemeProvider'
|
import { useTheme } from '@renderer/context/ThemeProvider'
|
||||||
import { useProvider } from '@renderer/hooks/useProvider'
|
import { useProvider } from '@renderer/hooks/useProvider'
|
||||||
import i18n from '@renderer/i18n'
|
import i18n from '@renderer/i18n'
|
||||||
import { isOpenAIProvider } from '@renderer/providers/ProviderFactory'
|
import { isOpenAIProvider } from '@renderer/providers/AiProvider/ProviderFactory'
|
||||||
import { checkApi, formatApiKeys } from '@renderer/services/ApiService'
|
import { checkApi, formatApiKeys } from '@renderer/services/ApiService'
|
||||||
import { checkModelsHealth, ModelCheckStatus } from '@renderer/services/HealthCheckService'
|
import { checkModelsHealth, ModelCheckStatus } from '@renderer/services/HealthCheckService'
|
||||||
import { isProviderSupportAuth, isProviderSupportCharge } from '@renderer/services/ProviderService'
|
import { isProviderSupportAuth, isProviderSupportCharge } from '@renderer/services/ProviderService'
|
||||||
|
|||||||
@ -221,7 +221,7 @@ export default class AnthropicProvider extends BaseProvider {
|
|||||||
return onChunk({
|
return onChunk({
|
||||||
text,
|
text,
|
||||||
reasoning_content,
|
reasoning_content,
|
||||||
usage: message.usage,
|
usage: message.usage as any,
|
||||||
metrics: {
|
metrics: {
|
||||||
completion_tokens: message.usage.output_tokens,
|
completion_tokens: message.usage.output_tokens,
|
||||||
time_completion_millsec,
|
time_completion_millsec,
|
||||||
@ -1,9 +1,47 @@
|
|||||||
import BaseProvider from '@renderer/providers/BaseProvider'
|
import type { GroundingMetadata } from '@google/generative-ai'
|
||||||
import ProviderFactory from '@renderer/providers/ProviderFactory'
|
import BaseProvider from '@renderer/providers/AiProvider/BaseProvider'
|
||||||
import { Assistant, GenerateImageParams, Message, Model, Provider, Suggestion } from '@renderer/types'
|
import ProviderFactory from '@renderer/providers/AiProvider/ProviderFactory'
|
||||||
|
import type {
|
||||||
|
Assistant,
|
||||||
|
GenerateImageParams,
|
||||||
|
GenerateImageResponse,
|
||||||
|
MCPTool,
|
||||||
|
MCPToolResponse,
|
||||||
|
Message,
|
||||||
|
Metrics,
|
||||||
|
Model,
|
||||||
|
Provider,
|
||||||
|
Suggestion
|
||||||
|
} from '@renderer/types'
|
||||||
import OpenAI from 'openai'
|
import OpenAI from 'openai'
|
||||||
|
|
||||||
import { CompletionsParams } from '.'
|
export interface ChunkCallbackData {
|
||||||
|
text?: string
|
||||||
|
reasoning_content?: string
|
||||||
|
usage?: OpenAI.Completions.CompletionUsage
|
||||||
|
metrics?: Metrics
|
||||||
|
search?: GroundingMetadata
|
||||||
|
citations?: string[]
|
||||||
|
mcpToolResponse?: MCPToolResponse[]
|
||||||
|
generateImage?: GenerateImageResponse
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface CompletionsParams {
|
||||||
|
messages: Message[]
|
||||||
|
assistant: Assistant
|
||||||
|
onChunk: ({
|
||||||
|
text,
|
||||||
|
reasoning_content,
|
||||||
|
usage,
|
||||||
|
metrics,
|
||||||
|
search,
|
||||||
|
citations,
|
||||||
|
mcpToolResponse,
|
||||||
|
generateImage
|
||||||
|
}: ChunkCallbackData) => void
|
||||||
|
onFilterMessages: (messages: Message[]) => void
|
||||||
|
mcpTools?: MCPTool[]
|
||||||
|
}
|
||||||
|
|
||||||
export default class AiProvider {
|
export default class AiProvider {
|
||||||
private sdk: BaseProvider
|
private sdk: BaseProvider
|
||||||
30
src/renderer/src/providers/index.d.ts
vendored
30
src/renderer/src/providers/index.d.ts
vendored
@ -1,30 +0,0 @@
|
|||||||
import type { GroundingMetadata } from '@google/generative-ai'
|
|
||||||
import type { Assistant, MCPToolResponse, Message, Metrics } from '@renderer/types'
|
|
||||||
|
|
||||||
interface ChunkCallbackData {
|
|
||||||
text?: string
|
|
||||||
reasoning_content?: string
|
|
||||||
usage?: OpenAI.Completions.CompletionUsage
|
|
||||||
metrics?: Metrics
|
|
||||||
search?: GroundingMetadata
|
|
||||||
citations?: string[]
|
|
||||||
mcpToolResponse?: MCPToolResponse[]
|
|
||||||
generateImage?: GenerateImageResponse
|
|
||||||
}
|
|
||||||
|
|
||||||
interface CompletionsParams {
|
|
||||||
messages: Message[]
|
|
||||||
assistant: Assistant
|
|
||||||
onChunk: ({
|
|
||||||
text,
|
|
||||||
reasoning_content,
|
|
||||||
usage,
|
|
||||||
metrics,
|
|
||||||
search,
|
|
||||||
citations,
|
|
||||||
mcpToolResponse,
|
|
||||||
generateImage
|
|
||||||
}: ChunkCallbackData) => void
|
|
||||||
onFilterMessages: (messages: Message[]) => void
|
|
||||||
mcpTools?: MCPTool[]
|
|
||||||
}
|
|
||||||
@ -1,8 +1,8 @@
|
|||||||
|
import WebSearchEngineProvider from '@renderer/providers/WebSearchProvider'
|
||||||
import store from '@renderer/store'
|
import store from '@renderer/store'
|
||||||
import { setDefaultProvider, WebSearchState } from '@renderer/store/websearch'
|
import { setDefaultProvider, WebSearchState } from '@renderer/store/websearch'
|
||||||
import { WebSearchProvider, WebSearchResponse } from '@renderer/types'
|
import { WebSearchProvider, WebSearchResponse } from '@renderer/types'
|
||||||
import { hasObjectKey } from '@renderer/utils'
|
import { hasObjectKey } from '@renderer/utils'
|
||||||
import WebSearchEngineProvider from '@renderer/webSearchProvider/WebSearchEngineProvider'
|
|
||||||
import dayjs from 'dayjs'
|
import dayjs from 'dayjs'
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -18,7 +18,7 @@ import { addMCPServer } from '@renderer/store/mcp'
|
|||||||
import { MCPServer, MCPTool, MCPToolResponse } from '@renderer/types'
|
import { MCPServer, MCPTool, MCPToolResponse } from '@renderer/types'
|
||||||
import { ChatCompletionMessageToolCall, ChatCompletionTool } from 'openai/resources'
|
import { ChatCompletionMessageToolCall, ChatCompletionTool } from 'openai/resources'
|
||||||
|
|
||||||
import { ChunkCallbackData } from '../providers'
|
import { ChunkCallbackData } from '../providers/AiProvider'
|
||||||
|
|
||||||
const ensureValidSchema = (obj: Record<string, any>): FunctionDeclarationSchemaProperty => {
|
const ensureValidSchema = (obj: Record<string, any>): FunctionDeclarationSchemaProperty => {
|
||||||
// Filter out unsupported keys for Gemini
|
// Filter out unsupported keys for Gemini
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user