init: VitePress docs with hero layout and custom theme
This commit is contained in:
commit
f37b01897b
52
apidoc/.vitepress/cache/deps/_metadata.json
vendored
Normal file
52
apidoc/.vitepress/cache/deps/_metadata.json
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
{
|
||||
"hash": "ed9e37ce",
|
||||
"configHash": "11d34907",
|
||||
"lockfileHash": "430bd083",
|
||||
"browserHash": "72c15e6a",
|
||||
"optimized": {
|
||||
"vue": {
|
||||
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
|
||||
"file": "vue.js",
|
||||
"fileHash": "7f5bff5b",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vue/devtools-api": {
|
||||
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
|
||||
"file": "vitepress___@vue_devtools-api.js",
|
||||
"fileHash": "e5907191",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/core": {
|
||||
"src": "../../../../node_modules/@vueuse/core/dist/index.js",
|
||||
"file": "vitepress___@vueuse_core.js",
|
||||
"fileHash": "63400815",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > @vueuse/integrations/useFocusTrap": {
|
||||
"src": "../../../../node_modules/@vueuse/integrations/dist/useFocusTrap.js",
|
||||
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
|
||||
"fileHash": "f003abe3",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > mark.js/src/vanilla.js": {
|
||||
"src": "../../../../node_modules/mark.js/src/vanilla.js",
|
||||
"file": "vitepress___mark__js_src_vanilla__js.js",
|
||||
"fileHash": "3c4477be",
|
||||
"needsInterop": false
|
||||
},
|
||||
"vitepress > minisearch": {
|
||||
"src": "../../../../node_modules/minisearch/dist/es/index.js",
|
||||
"file": "vitepress___minisearch.js",
|
||||
"fileHash": "ba3c530c",
|
||||
"needsInterop": false
|
||||
}
|
||||
},
|
||||
"chunks": {
|
||||
"chunk-UPIQLODK": {
|
||||
"file": "chunk-UPIQLODK.js"
|
||||
},
|
||||
"chunk-UHRETBQL": {
|
||||
"file": "chunk-UHRETBQL.js"
|
||||
}
|
||||
}
|
||||
}
|
||||
12998
apidoc/.vitepress/cache/deps/chunk-UHRETBQL.js
vendored
Normal file
12998
apidoc/.vitepress/cache/deps/chunk-UHRETBQL.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/chunk-UHRETBQL.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/chunk-UHRETBQL.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
8801
apidoc/.vitepress/cache/deps/chunk-UPIQLODK.js
vendored
Normal file
8801
apidoc/.vitepress/cache/deps/chunk-UPIQLODK.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/chunk-UPIQLODK.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/chunk-UPIQLODK.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
3
apidoc/.vitepress/cache/deps/package.json
vendored
Normal file
3
apidoc/.vitepress/cache/deps/package.json
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "module"
|
||||
}
|
||||
3813
apidoc/.vitepress/cache/deps/vitepress___@vue_devtools-api.js
vendored
Normal file
3813
apidoc/.vitepress/cache/deps/vitepress___@vue_devtools-api.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
603
apidoc/.vitepress/cache/deps/vitepress___@vueuse_core.js
vendored
Normal file
603
apidoc/.vitepress/cache/deps/vitepress___@vueuse_core.js
vendored
Normal file
@ -0,0 +1,603 @@
|
||||
import {
|
||||
DefaultMagicKeysAliasMap,
|
||||
StorageSerializers,
|
||||
TransitionPresets,
|
||||
assert,
|
||||
asyncComputed,
|
||||
autoResetRef,
|
||||
breakpointsAntDesign,
|
||||
breakpointsBootstrapV5,
|
||||
breakpointsElement,
|
||||
breakpointsMasterCss,
|
||||
breakpointsPrimeFlex,
|
||||
breakpointsQuasar,
|
||||
breakpointsSematic,
|
||||
breakpointsTailwind,
|
||||
breakpointsVuetify,
|
||||
breakpointsVuetifyV2,
|
||||
breakpointsVuetifyV3,
|
||||
bypassFilter,
|
||||
camelize,
|
||||
clamp,
|
||||
cloneFnJSON,
|
||||
computedAsync,
|
||||
computedEager,
|
||||
computedInject,
|
||||
computedWithControl,
|
||||
containsProp,
|
||||
controlledComputed,
|
||||
controlledRef,
|
||||
createDisposableDirective,
|
||||
createEventHook,
|
||||
createFetch,
|
||||
createFilterWrapper,
|
||||
createGlobalState,
|
||||
createInjectionState,
|
||||
createReactiveFn,
|
||||
createRef,
|
||||
createReusableTemplate,
|
||||
createSharedComposable,
|
||||
createSingletonPromise,
|
||||
createTemplatePromise,
|
||||
createUnrefFn,
|
||||
customStorageEventName,
|
||||
debounceFilter,
|
||||
debouncedRef,
|
||||
debouncedWatch,
|
||||
defaultDocument,
|
||||
defaultLocation,
|
||||
defaultNavigator,
|
||||
defaultWindow,
|
||||
eagerComputed,
|
||||
executeTransition,
|
||||
extendRef,
|
||||
formatDate,
|
||||
formatTimeAgo,
|
||||
formatTimeAgoIntl,
|
||||
formatTimeAgoIntlParts,
|
||||
get,
|
||||
getLifeCycleTarget,
|
||||
getSSRHandler,
|
||||
hasOwn,
|
||||
hyphenate,
|
||||
identity,
|
||||
ignorableWatch,
|
||||
increaseWithUnit,
|
||||
injectLocal,
|
||||
invoke,
|
||||
isClient,
|
||||
isDef,
|
||||
isDefined,
|
||||
isIOS,
|
||||
isObject,
|
||||
isWorker,
|
||||
makeDestructurable,
|
||||
mapGamepadToXbox360Controller,
|
||||
noop,
|
||||
normalizeDate,
|
||||
notNullish,
|
||||
now,
|
||||
objectEntries,
|
||||
objectOmit,
|
||||
objectPick,
|
||||
onClickOutside,
|
||||
onElementRemoval,
|
||||
onKeyDown,
|
||||
onKeyPressed,
|
||||
onKeyStroke,
|
||||
onKeyUp,
|
||||
onLongPress,
|
||||
onStartTyping,
|
||||
pausableFilter,
|
||||
pausableWatch,
|
||||
promiseTimeout,
|
||||
provideLocal,
|
||||
provideSSRWidth,
|
||||
pxValue,
|
||||
rand,
|
||||
reactify,
|
||||
reactifyObject,
|
||||
reactiveComputed,
|
||||
reactiveOmit,
|
||||
reactivePick,
|
||||
refAutoReset,
|
||||
refDebounced,
|
||||
refDefault,
|
||||
refManualReset,
|
||||
refThrottled,
|
||||
refWithControl,
|
||||
set,
|
||||
setSSRHandler,
|
||||
syncRef,
|
||||
syncRefs,
|
||||
templateRef,
|
||||
throttleFilter,
|
||||
throttledRef,
|
||||
throttledWatch,
|
||||
timestamp,
|
||||
toArray,
|
||||
toReactive,
|
||||
toRef,
|
||||
toRefs,
|
||||
transition,
|
||||
tryOnBeforeMount,
|
||||
tryOnBeforeUnmount,
|
||||
tryOnMounted,
|
||||
tryOnScopeDispose,
|
||||
tryOnUnmounted,
|
||||
unrefElement,
|
||||
until,
|
||||
useActiveElement,
|
||||
useAnimate,
|
||||
useArrayDifference,
|
||||
useArrayEvery,
|
||||
useArrayFilter,
|
||||
useArrayFind,
|
||||
useArrayFindIndex,
|
||||
useArrayFindLast,
|
||||
useArrayIncludes,
|
||||
useArrayJoin,
|
||||
useArrayMap,
|
||||
useArrayReduce,
|
||||
useArraySome,
|
||||
useArrayUnique,
|
||||
useAsyncQueue,
|
||||
useAsyncState,
|
||||
useBase64,
|
||||
useBattery,
|
||||
useBluetooth,
|
||||
useBreakpoints,
|
||||
useBroadcastChannel,
|
||||
useBrowserLocation,
|
||||
useCached,
|
||||
useClipboard,
|
||||
useClipboardItems,
|
||||
useCloned,
|
||||
useColorMode,
|
||||
useConfirmDialog,
|
||||
useCountdown,
|
||||
useCounter,
|
||||
useCssSupports,
|
||||
useCssVar,
|
||||
useCurrentElement,
|
||||
useCycleList,
|
||||
useDark,
|
||||
useDateFormat,
|
||||
useDebounce,
|
||||
useDebounceFn,
|
||||
useDebouncedRefHistory,
|
||||
useDeviceMotion,
|
||||
useDeviceOrientation,
|
||||
useDevicePixelRatio,
|
||||
useDevicesList,
|
||||
useDisplayMedia,
|
||||
useDocumentVisibility,
|
||||
useDraggable,
|
||||
useDropZone,
|
||||
useElementBounding,
|
||||
useElementByPoint,
|
||||
useElementHover,
|
||||
useElementSize,
|
||||
useElementVisibility,
|
||||
useEventBus,
|
||||
useEventListener,
|
||||
useEventSource,
|
||||
useEyeDropper,
|
||||
useFavicon,
|
||||
useFetch,
|
||||
useFileDialog,
|
||||
useFileSystemAccess,
|
||||
useFocus,
|
||||
useFocusWithin,
|
||||
useFps,
|
||||
useFullscreen,
|
||||
useGamepad,
|
||||
useGeolocation,
|
||||
useIdle,
|
||||
useImage,
|
||||
useInfiniteScroll,
|
||||
useIntersectionObserver,
|
||||
useInterval,
|
||||
useIntervalFn,
|
||||
useKeyModifier,
|
||||
useLastChanged,
|
||||
useLocalStorage,
|
||||
useMagicKeys,
|
||||
useManualRefHistory,
|
||||
useMediaControls,
|
||||
useMediaQuery,
|
||||
useMemoize,
|
||||
useMemory,
|
||||
useMounted,
|
||||
useMouse,
|
||||
useMouseInElement,
|
||||
useMousePressed,
|
||||
useMutationObserver,
|
||||
useNavigatorLanguage,
|
||||
useNetwork,
|
||||
useNow,
|
||||
useObjectUrl,
|
||||
useOffsetPagination,
|
||||
useOnline,
|
||||
usePageLeave,
|
||||
useParallax,
|
||||
useParentElement,
|
||||
usePerformanceObserver,
|
||||
usePermission,
|
||||
usePointer,
|
||||
usePointerLock,
|
||||
usePointerSwipe,
|
||||
usePreferredColorScheme,
|
||||
usePreferredContrast,
|
||||
usePreferredDark,
|
||||
usePreferredLanguages,
|
||||
usePreferredReducedMotion,
|
||||
usePreferredReducedTransparency,
|
||||
usePrevious,
|
||||
useRafFn,
|
||||
useRefHistory,
|
||||
useResizeObserver,
|
||||
useSSRWidth,
|
||||
useScreenOrientation,
|
||||
useScreenSafeArea,
|
||||
useScriptTag,
|
||||
useScroll,
|
||||
useScrollLock,
|
||||
useSessionStorage,
|
||||
useShare,
|
||||
useSorted,
|
||||
useSpeechRecognition,
|
||||
useSpeechSynthesis,
|
||||
useStepper,
|
||||
useStorage,
|
||||
useStorageAsync,
|
||||
useStyleTag,
|
||||
useSupported,
|
||||
useSwipe,
|
||||
useTemplateRefsList,
|
||||
useTextDirection,
|
||||
useTextSelection,
|
||||
useTextareaAutosize,
|
||||
useThrottle,
|
||||
useThrottleFn,
|
||||
useThrottledRefHistory,
|
||||
useTimeAgo,
|
||||
useTimeAgoIntl,
|
||||
useTimeout,
|
||||
useTimeoutFn,
|
||||
useTimeoutPoll,
|
||||
useTimestamp,
|
||||
useTitle,
|
||||
useToNumber,
|
||||
useToString,
|
||||
useToggle,
|
||||
useTransition,
|
||||
useUrlSearchParams,
|
||||
useUserMedia,
|
||||
useVModel,
|
||||
useVModels,
|
||||
useVibrate,
|
||||
useVirtualList,
|
||||
useWakeLock,
|
||||
useWebNotification,
|
||||
useWebSocket,
|
||||
useWebWorker,
|
||||
useWebWorkerFn,
|
||||
useWindowFocus,
|
||||
useWindowScroll,
|
||||
useWindowSize,
|
||||
watchArray,
|
||||
watchAtMost,
|
||||
watchDebounced,
|
||||
watchDeep,
|
||||
watchIgnorable,
|
||||
watchImmediate,
|
||||
watchOnce,
|
||||
watchPausable,
|
||||
watchThrottled,
|
||||
watchTriggerable,
|
||||
watchWithFilter,
|
||||
whenever
|
||||
} from "./chunk-UPIQLODK.js";
|
||||
import "./chunk-UHRETBQL.js";
|
||||
export {
|
||||
DefaultMagicKeysAliasMap,
|
||||
StorageSerializers,
|
||||
TransitionPresets,
|
||||
assert,
|
||||
asyncComputed,
|
||||
autoResetRef,
|
||||
breakpointsAntDesign,
|
||||
breakpointsBootstrapV5,
|
||||
breakpointsElement,
|
||||
breakpointsMasterCss,
|
||||
breakpointsPrimeFlex,
|
||||
breakpointsQuasar,
|
||||
breakpointsSematic,
|
||||
breakpointsTailwind,
|
||||
breakpointsVuetify,
|
||||
breakpointsVuetifyV2,
|
||||
breakpointsVuetifyV3,
|
||||
bypassFilter,
|
||||
camelize,
|
||||
clamp,
|
||||
cloneFnJSON,
|
||||
computedAsync,
|
||||
computedEager,
|
||||
computedInject,
|
||||
computedWithControl,
|
||||
containsProp,
|
||||
controlledComputed,
|
||||
controlledRef,
|
||||
createDisposableDirective,
|
||||
createEventHook,
|
||||
createFetch,
|
||||
createFilterWrapper,
|
||||
createGlobalState,
|
||||
createInjectionState,
|
||||
createReactiveFn,
|
||||
createRef,
|
||||
createReusableTemplate,
|
||||
createSharedComposable,
|
||||
createSingletonPromise,
|
||||
createTemplatePromise,
|
||||
createUnrefFn,
|
||||
customStorageEventName,
|
||||
debounceFilter,
|
||||
debouncedRef,
|
||||
debouncedWatch,
|
||||
defaultDocument,
|
||||
defaultLocation,
|
||||
defaultNavigator,
|
||||
defaultWindow,
|
||||
eagerComputed,
|
||||
executeTransition,
|
||||
extendRef,
|
||||
formatDate,
|
||||
formatTimeAgo,
|
||||
formatTimeAgoIntl,
|
||||
formatTimeAgoIntlParts,
|
||||
get,
|
||||
getLifeCycleTarget,
|
||||
getSSRHandler,
|
||||
hasOwn,
|
||||
hyphenate,
|
||||
identity,
|
||||
ignorableWatch,
|
||||
increaseWithUnit,
|
||||
injectLocal,
|
||||
invoke,
|
||||
isClient,
|
||||
isDef,
|
||||
isDefined,
|
||||
isIOS,
|
||||
isObject,
|
||||
isWorker,
|
||||
makeDestructurable,
|
||||
mapGamepadToXbox360Controller,
|
||||
noop,
|
||||
normalizeDate,
|
||||
notNullish,
|
||||
now,
|
||||
objectEntries,
|
||||
objectOmit,
|
||||
objectPick,
|
||||
onClickOutside,
|
||||
onElementRemoval,
|
||||
onKeyDown,
|
||||
onKeyPressed,
|
||||
onKeyStroke,
|
||||
onKeyUp,
|
||||
onLongPress,
|
||||
onStartTyping,
|
||||
pausableFilter,
|
||||
pausableWatch,
|
||||
promiseTimeout,
|
||||
provideLocal,
|
||||
provideSSRWidth,
|
||||
pxValue,
|
||||
rand,
|
||||
reactify,
|
||||
reactifyObject,
|
||||
reactiveComputed,
|
||||
reactiveOmit,
|
||||
reactivePick,
|
||||
refAutoReset,
|
||||
refDebounced,
|
||||
refDefault,
|
||||
refManualReset,
|
||||
refThrottled,
|
||||
refWithControl,
|
||||
set,
|
||||
setSSRHandler,
|
||||
syncRef,
|
||||
syncRefs,
|
||||
templateRef,
|
||||
throttleFilter,
|
||||
throttledRef,
|
||||
throttledWatch,
|
||||
timestamp,
|
||||
toArray,
|
||||
toReactive,
|
||||
toRef,
|
||||
toRefs,
|
||||
transition,
|
||||
tryOnBeforeMount,
|
||||
tryOnBeforeUnmount,
|
||||
tryOnMounted,
|
||||
tryOnScopeDispose,
|
||||
tryOnUnmounted,
|
||||
unrefElement,
|
||||
until,
|
||||
useActiveElement,
|
||||
useAnimate,
|
||||
useArrayDifference,
|
||||
useArrayEvery,
|
||||
useArrayFilter,
|
||||
useArrayFind,
|
||||
useArrayFindIndex,
|
||||
useArrayFindLast,
|
||||
useArrayIncludes,
|
||||
useArrayJoin,
|
||||
useArrayMap,
|
||||
useArrayReduce,
|
||||
useArraySome,
|
||||
useArrayUnique,
|
||||
useAsyncQueue,
|
||||
useAsyncState,
|
||||
useBase64,
|
||||
useBattery,
|
||||
useBluetooth,
|
||||
useBreakpoints,
|
||||
useBroadcastChannel,
|
||||
useBrowserLocation,
|
||||
useCached,
|
||||
useClipboard,
|
||||
useClipboardItems,
|
||||
useCloned,
|
||||
useColorMode,
|
||||
useConfirmDialog,
|
||||
useCountdown,
|
||||
useCounter,
|
||||
useCssSupports,
|
||||
useCssVar,
|
||||
useCurrentElement,
|
||||
useCycleList,
|
||||
useDark,
|
||||
useDateFormat,
|
||||
useDebounce,
|
||||
useDebounceFn,
|
||||
useDebouncedRefHistory,
|
||||
useDeviceMotion,
|
||||
useDeviceOrientation,
|
||||
useDevicePixelRatio,
|
||||
useDevicesList,
|
||||
useDisplayMedia,
|
||||
useDocumentVisibility,
|
||||
useDraggable,
|
||||
useDropZone,
|
||||
useElementBounding,
|
||||
useElementByPoint,
|
||||
useElementHover,
|
||||
useElementSize,
|
||||
useElementVisibility,
|
||||
useEventBus,
|
||||
useEventListener,
|
||||
useEventSource,
|
||||
useEyeDropper,
|
||||
useFavicon,
|
||||
useFetch,
|
||||
useFileDialog,
|
||||
useFileSystemAccess,
|
||||
useFocus,
|
||||
useFocusWithin,
|
||||
useFps,
|
||||
useFullscreen,
|
||||
useGamepad,
|
||||
useGeolocation,
|
||||
useIdle,
|
||||
useImage,
|
||||
useInfiniteScroll,
|
||||
useIntersectionObserver,
|
||||
useInterval,
|
||||
useIntervalFn,
|
||||
useKeyModifier,
|
||||
useLastChanged,
|
||||
useLocalStorage,
|
||||
useMagicKeys,
|
||||
useManualRefHistory,
|
||||
useMediaControls,
|
||||
useMediaQuery,
|
||||
useMemoize,
|
||||
useMemory,
|
||||
useMounted,
|
||||
useMouse,
|
||||
useMouseInElement,
|
||||
useMousePressed,
|
||||
useMutationObserver,
|
||||
useNavigatorLanguage,
|
||||
useNetwork,
|
||||
useNow,
|
||||
useObjectUrl,
|
||||
useOffsetPagination,
|
||||
useOnline,
|
||||
usePageLeave,
|
||||
useParallax,
|
||||
useParentElement,
|
||||
usePerformanceObserver,
|
||||
usePermission,
|
||||
usePointer,
|
||||
usePointerLock,
|
||||
usePointerSwipe,
|
||||
usePreferredColorScheme,
|
||||
usePreferredContrast,
|
||||
usePreferredDark,
|
||||
usePreferredLanguages,
|
||||
usePreferredReducedMotion,
|
||||
usePreferredReducedTransparency,
|
||||
usePrevious,
|
||||
useRafFn,
|
||||
useRefHistory,
|
||||
useResizeObserver,
|
||||
useSSRWidth,
|
||||
useScreenOrientation,
|
||||
useScreenSafeArea,
|
||||
useScriptTag,
|
||||
useScroll,
|
||||
useScrollLock,
|
||||
useSessionStorage,
|
||||
useShare,
|
||||
useSorted,
|
||||
useSpeechRecognition,
|
||||
useSpeechSynthesis,
|
||||
useStepper,
|
||||
useStorage,
|
||||
useStorageAsync,
|
||||
useStyleTag,
|
||||
useSupported,
|
||||
useSwipe,
|
||||
useTemplateRefsList,
|
||||
useTextDirection,
|
||||
useTextSelection,
|
||||
useTextareaAutosize,
|
||||
useThrottle,
|
||||
useThrottleFn,
|
||||
useThrottledRefHistory,
|
||||
useTimeAgo,
|
||||
useTimeAgoIntl,
|
||||
useTimeout,
|
||||
useTimeoutFn,
|
||||
useTimeoutPoll,
|
||||
useTimestamp,
|
||||
useTitle,
|
||||
useToNumber,
|
||||
useToString,
|
||||
useToggle,
|
||||
useTransition,
|
||||
useUrlSearchParams,
|
||||
useUserMedia,
|
||||
useVModel,
|
||||
useVModels,
|
||||
useVibrate,
|
||||
useVirtualList,
|
||||
useWakeLock,
|
||||
useWebNotification,
|
||||
useWebSocket,
|
||||
useWebWorker,
|
||||
useWebWorkerFn,
|
||||
useWindowFocus,
|
||||
useWindowScroll,
|
||||
useWindowSize,
|
||||
watchArray,
|
||||
watchAtMost,
|
||||
watchDebounced,
|
||||
watchDeep,
|
||||
watchIgnorable,
|
||||
watchImmediate,
|
||||
watchOnce,
|
||||
watchPausable,
|
||||
watchThrottled,
|
||||
watchTriggerable,
|
||||
watchWithFilter,
|
||||
whenever
|
||||
};
|
||||
7
apidoc/.vitepress/cache/deps/vitepress___@vueuse_core.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vitepress___@vueuse_core.js.map
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
1521
apidoc/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js
vendored
Normal file
1521
apidoc/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1665
apidoc/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js
vendored
Normal file
1665
apidoc/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
1813
apidoc/.vitepress/cache/deps/vitepress___minisearch.js
vendored
Normal file
1813
apidoc/.vitepress/cache/deps/vitepress___minisearch.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
apidoc/.vitepress/cache/deps/vitepress___minisearch.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vitepress___minisearch.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
346
apidoc/.vitepress/cache/deps/vue.js
vendored
Normal file
346
apidoc/.vitepress/cache/deps/vue.js
vendored
Normal file
@ -0,0 +1,346 @@
|
||||
import {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBaseVNode,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
} from "./chunk-UHRETBQL.js";
|
||||
export {
|
||||
BaseTransition,
|
||||
BaseTransitionPropsValidators,
|
||||
Comment,
|
||||
DeprecationTypes,
|
||||
EffectScope,
|
||||
ErrorCodes,
|
||||
ErrorTypeStrings,
|
||||
Fragment,
|
||||
KeepAlive,
|
||||
ReactiveEffect,
|
||||
Static,
|
||||
Suspense,
|
||||
Teleport,
|
||||
Text,
|
||||
TrackOpTypes,
|
||||
Transition,
|
||||
TransitionGroup,
|
||||
TriggerOpTypes,
|
||||
VueElement,
|
||||
assertNumber,
|
||||
callWithAsyncErrorHandling,
|
||||
callWithErrorHandling,
|
||||
camelize,
|
||||
capitalize,
|
||||
cloneVNode,
|
||||
compatUtils,
|
||||
compile,
|
||||
computed,
|
||||
createApp,
|
||||
createBlock,
|
||||
createCommentVNode,
|
||||
createElementBlock,
|
||||
createBaseVNode as createElementVNode,
|
||||
createHydrationRenderer,
|
||||
createPropsRestProxy,
|
||||
createRenderer,
|
||||
createSSRApp,
|
||||
createSlots,
|
||||
createStaticVNode,
|
||||
createTextVNode,
|
||||
createVNode,
|
||||
customRef,
|
||||
defineAsyncComponent,
|
||||
defineComponent,
|
||||
defineCustomElement,
|
||||
defineEmits,
|
||||
defineExpose,
|
||||
defineModel,
|
||||
defineOptions,
|
||||
defineProps,
|
||||
defineSSRCustomElement,
|
||||
defineSlots,
|
||||
devtools,
|
||||
effect,
|
||||
effectScope,
|
||||
getCurrentInstance,
|
||||
getCurrentScope,
|
||||
getCurrentWatcher,
|
||||
getTransitionRawChildren,
|
||||
guardReactiveProps,
|
||||
h,
|
||||
handleError,
|
||||
hasInjectionContext,
|
||||
hydrate,
|
||||
hydrateOnIdle,
|
||||
hydrateOnInteraction,
|
||||
hydrateOnMediaQuery,
|
||||
hydrateOnVisible,
|
||||
initCustomFormatter,
|
||||
initDirectivesForSSR,
|
||||
inject,
|
||||
isMemoSame,
|
||||
isProxy,
|
||||
isReactive,
|
||||
isReadonly,
|
||||
isRef,
|
||||
isRuntimeOnly,
|
||||
isShallow,
|
||||
isVNode,
|
||||
markRaw,
|
||||
mergeDefaults,
|
||||
mergeModels,
|
||||
mergeProps,
|
||||
nextTick,
|
||||
nodeOps,
|
||||
normalizeClass,
|
||||
normalizeProps,
|
||||
normalizeStyle,
|
||||
onActivated,
|
||||
onBeforeMount,
|
||||
onBeforeUnmount,
|
||||
onBeforeUpdate,
|
||||
onDeactivated,
|
||||
onErrorCaptured,
|
||||
onMounted,
|
||||
onRenderTracked,
|
||||
onRenderTriggered,
|
||||
onScopeDispose,
|
||||
onServerPrefetch,
|
||||
onUnmounted,
|
||||
onUpdated,
|
||||
onWatcherCleanup,
|
||||
openBlock,
|
||||
patchProp,
|
||||
popScopeId,
|
||||
provide,
|
||||
proxyRefs,
|
||||
pushScopeId,
|
||||
queuePostFlushCb,
|
||||
reactive,
|
||||
readonly,
|
||||
ref,
|
||||
registerRuntimeCompiler,
|
||||
render,
|
||||
renderList,
|
||||
renderSlot,
|
||||
resolveComponent,
|
||||
resolveDirective,
|
||||
resolveDynamicComponent,
|
||||
resolveFilter,
|
||||
resolveTransitionHooks,
|
||||
setBlockTracking,
|
||||
setDevtoolsHook,
|
||||
setTransitionHooks,
|
||||
shallowReactive,
|
||||
shallowReadonly,
|
||||
shallowRef,
|
||||
ssrContextKey,
|
||||
ssrUtils,
|
||||
stop,
|
||||
toDisplayString,
|
||||
toHandlerKey,
|
||||
toHandlers,
|
||||
toRaw,
|
||||
toRef,
|
||||
toRefs,
|
||||
toValue,
|
||||
transformVNodeArgs,
|
||||
triggerRef,
|
||||
unref,
|
||||
useAttrs,
|
||||
useCssModule,
|
||||
useCssVars,
|
||||
useHost,
|
||||
useId,
|
||||
useModel,
|
||||
useSSRContext,
|
||||
useShadowRoot,
|
||||
useSlots,
|
||||
useTemplateRef,
|
||||
useTransitionState,
|
||||
vModelCheckbox,
|
||||
vModelDynamic,
|
||||
vModelRadio,
|
||||
vModelSelect,
|
||||
vModelText,
|
||||
vShow,
|
||||
version,
|
||||
warn,
|
||||
watch,
|
||||
watchEffect,
|
||||
watchPostEffect,
|
||||
watchSyncEffect,
|
||||
withAsyncContext,
|
||||
withCtx,
|
||||
withDefaults,
|
||||
withDirectives,
|
||||
withKeys,
|
||||
withMemo,
|
||||
withModifiers,
|
||||
withScopeId
|
||||
};
|
||||
7
apidoc/.vitepress/cache/deps/vue.js.map
vendored
Normal file
7
apidoc/.vitepress/cache/deps/vue.js.map
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"version": 3,
|
||||
"sources": [],
|
||||
"sourcesContent": [],
|
||||
"mappings": "",
|
||||
"names": []
|
||||
}
|
||||
119
apidoc/.vitepress/config.mts
Normal file
119
apidoc/.vitepress/config.mts
Normal file
@ -0,0 +1,119 @@
|
||||
import { defineConfig } from 'vitepress'
|
||||
|
||||
export default defineConfig({
|
||||
title: "OneinAI",
|
||||
description: "OneinAI API doc",
|
||||
themeConfig: {
|
||||
nav: [
|
||||
{ text: '首页', link: '/' },
|
||||
{ text: '使用指南', link: '/intro/welcome' },
|
||||
{ text: 'Node 安装', link: '/node/windows' },
|
||||
{ text: '配置工具', link: '/guide/create-key' },
|
||||
{
|
||||
text: '部署指南',
|
||||
items: [
|
||||
{ text: 'Claude Code', link: '/deploy/claude-code' },
|
||||
{ text: 'CodeX', link: '/deploy/codex' },
|
||||
{ text: 'Gemini CLI', link: '/deploy/gemini-cli' },
|
||||
{ text: 'Nano Banana', link: '/deploy/nano-banana' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '第三方应用',
|
||||
items: [
|
||||
{ text: 'Cherry Studio', link: '/apps/cherry-studio' },
|
||||
{ text: 'Hapi', link: '/apps/hapi' },
|
||||
{ text: 'Hapi Advanced', link: '/apps/hapi-advanced' },
|
||||
{ text: 'Alma', link: '/apps/alma' },
|
||||
{ text: 'OpenClaw', link: '/apps/openclaw' },
|
||||
{ text: 'OpenCode', link: '/apps/opencode' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '支持与 FAQ',
|
||||
link: '/support/faq'
|
||||
},
|
||||
],
|
||||
|
||||
sidebar: [
|
||||
{
|
||||
text: '介绍',
|
||||
items: [
|
||||
{ text: '欢迎', link: '/intro/welcome' },
|
||||
{ text: '概览', link: '/intro/overview' },
|
||||
{ text: '价格', link: '/intro/pricing' },
|
||||
{ text: '相关链接', link: '/intro/links' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: 'Node 安装',
|
||||
items: [
|
||||
{ text: 'Windows', link: '/node/windows' },
|
||||
{ text: 'macOS', link: '/node/macos' },
|
||||
{ text: 'Linux', link: '/node/linux' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '配置工具',
|
||||
items: [
|
||||
{ text: '创建 API Key', link: '/guide/create-key' },
|
||||
{ text: '模型选择', link: '/guide/model-selection' },
|
||||
{ text: '修改 Token', link: '/guide/modify-token' },
|
||||
{ text: '充值', link: '/guide/recharge' },
|
||||
{ text: '注册', link: '/guide/registration' },
|
||||
{ text: 'API 参考', link: '/guide/api-reference' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '部署指南',
|
||||
items: [
|
||||
{ text: 'Claude Code', link: '/deploy/claude-code' },
|
||||
{ text: 'CodeX', link: '/deploy/codex' },
|
||||
{ text: 'Gemini CLI', link: '/deploy/gemini-cli' },
|
||||
{ text: 'Nano Banana', link: '/deploy/nano-banana' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '第三方应用',
|
||||
items: [
|
||||
{ text: 'Cherry Studio', link: '/apps/cherry-studio' },
|
||||
{ text: 'Hapi', link: '/apps/hapi' },
|
||||
{ text: 'Hapi Advanced', link: '/apps/hapi-advanced' },
|
||||
{ text: 'Alma', link: '/apps/alma' },
|
||||
{ text: 'OpenClaw', link: '/apps/openclaw' },
|
||||
{ text: 'OpenCode', link: '/apps/opencode' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '工具',
|
||||
items: [
|
||||
{ text: 'CC Switch', link: '/tools/cc-switch' },
|
||||
{ text: 'Claude Code Hub', link: '/tools/claude-code-hub' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '技能',
|
||||
items: [
|
||||
{ text: 'IkunCode AI MCP', link: '/skills/ikuncode-aimcp' },
|
||||
{ text: 'IkunImage', link: '/skills/ikunimage' },
|
||||
]
|
||||
},
|
||||
{
|
||||
text: '支持',
|
||||
items: [
|
||||
{ text: 'FAQ', link: '/support/faq' },
|
||||
{ text: '售后', link: '/support/after-sales' },
|
||||
{ text: '故障排查', link: '/support/troubleshooting' },
|
||||
]
|
||||
},
|
||||
],
|
||||
|
||||
socialLinks: [
|
||||
{ icon: 'github', link: 'https://github.com/vuejs/vitepress' }
|
||||
],
|
||||
|
||||
search: {
|
||||
provider: 'local'
|
||||
}
|
||||
}
|
||||
})
|
||||
3
apidoc/.vitepress/theme/custom.css
Normal file
3
apidoc/.vitepress/theme/custom.css
Normal file
@ -0,0 +1,3 @@
|
||||
.VPHero .image-container {
|
||||
transform: scale(1.3) translateX(20px);
|
||||
}
|
||||
4
apidoc/.vitepress/theme/index.ts
Normal file
4
apidoc/.vitepress/theme/index.ts
Normal file
@ -0,0 +1,4 @@
|
||||
import DefaultTheme from 'vitepress/theme'
|
||||
import './custom.css'
|
||||
|
||||
export default DefaultTheme
|
||||
160
apidoc/apps/alma.md
Normal file
160
apidoc/apps/alma.md
Normal file
@ -0,0 +1,160 @@
|
||||
# Alma 客户端配置指南
|
||||
|
||||
**功能强大的 AI 编程客户端工具**
|
||||
|
||||
📋 简介
|
||||
|
||||
Alma 是一款功能强大且界面精美的 AI 客户端工具,集成了代码编写、终端操作、Git 管理、浏览器等多种功能,为开发者提供完整的 AI 辅助编程体验。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
Alma 官网| <https://alma.now/>
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
Alma 提供以下强大功能:
|
||||
|
||||
* ✅ **代码编写** :智能代码生成和补全
|
||||
* ✅ **终端操作** :集成终端,直接执行命令
|
||||
* ✅ **Git 管理** :可视化 Git 操作
|
||||
* ✅ **浏览器集成** :内置浏览器支持
|
||||
* ✅ **多模型支持** :支持 Claude、Gemini 等多种模型
|
||||
* ✅ **自定义供应商** :可接入自定义 API 提供商
|
||||
|
||||

|
||||
|
||||
## 🛠️ 安装与配置
|
||||
|
||||
### 第一步:安装 Alma
|
||||
|
||||
访问 [Alma 官网](<https://alma.now/>) 下载并安装适合你操作系统的版本。
|
||||
|
||||
### 第二步:设置中文界面
|
||||
|
||||
为了更好的使用体验,建议将界面设置为中文:
|
||||
|
||||
1. 打开 Alma 应用
|
||||
2. 进入 **Settins → General → Language**
|
||||
3. 选择「中文」
|
||||
4. 点击「保存」
|
||||
|
||||

|
||||

|
||||
|
||||
### 第三步:添加 OneinAI 自定义供应商
|
||||
|
||||
**1\. 进入供应商设置**
|
||||
|
||||
点击 **选择供应商 → Add Custom Provider** (添加自定义提供商)
|
||||
|
||||

|
||||
|
||||
**2\. 配置 OneinAI 供应商**
|
||||
|
||||

|
||||
|
||||
填写以下信息:
|
||||
|
||||
* **Provider Name** :OneinAI(或自定义名称)
|
||||
* **Base URL** :`https://api.oneinai.com/v1`
|
||||
* **API Key** :粘贴你从 [OneinAI 控制台](<https://api.oneinai.com/console/token>) 创建的 API Key
|
||||
|
||||
💡提示
|
||||
如果需要使用Claude模型,请选择Anthropic然后添加供应商
|
||||
|
||||
**3\. 获取可用模型**
|
||||
|
||||
添加完成后,在 OneinAI 供应商界面点击 **Fetch** (获取)按钮,系统会自动获取所有可用模型。
|
||||
|
||||

|
||||
|
||||
选择你需要的模型即可开始使用。
|
||||
|
||||

|
||||
|
||||
|
||||
### 使用技巧
|
||||
|
||||
**1\. 代码编写**
|
||||
|
||||
* 描述你的需求,Alma 会生成对应代码
|
||||
* 支持多文件操作和项目级别的修改
|
||||
* 可以实时预览和修改生成的代码
|
||||
|
||||
**2\. 终端操作**
|
||||
|
||||
* 集成终端直接执行命令
|
||||
* 支持查看命令执行结果
|
||||
* 可以与 AI 互动调试问题
|
||||
|
||||
**3\. Git 管理**
|
||||
|
||||
* 可视化查看 Git 状态
|
||||
* AI 辅助编写提交信息
|
||||
* 支持分支管理和合并操作
|
||||
|
||||
**4\. 文件浏览**
|
||||
|
||||
* 浏览项目文件结构
|
||||
* 快速定位和编辑文件
|
||||
* 支持文件搜索和过滤
|
||||
|
||||
## 🎯 最佳实践
|
||||
|
||||
### 1\. 选择合适的模型
|
||||
|
||||
* **Claude Sonnet** :适合日常编码任务,速度快
|
||||
* **Claude Opus** :适合复杂的架构设计和难题
|
||||
* **Gemini** :适合需要多模态能力的任务(如图片理解)
|
||||
|
||||
### 2\. 合理使用上下文
|
||||
|
||||
* 对于小型项目,可以「全选」所有文件
|
||||
* 对于大型项目,选择相关的模块和文件
|
||||
* 定期清理不相关的上下文,避免 token 浪费
|
||||
|
||||
### 3\. 充分利用 Alma 的集成功能
|
||||
|
||||
* 使用终端功能验证 AI 生成的代码
|
||||
* 利用 Git 集成管理代码版本
|
||||
* 通过浏览器功能查看文档和参考资料
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 如何切换不同的 API 提供商?
|
||||
|
||||
在聊天界面顶部的模型选择器中,可以随时切换不同的提供商和模型。
|
||||
|
||||
### 为什么有些模型无法使用?
|
||||
|
||||
* 检查对应的 API Key 是否有权限访问该模型
|
||||
* 确认账户余额是否充足
|
||||
* 查看 [OneinAI 控制台](<https://api.oneinai.com/console/token>) 的令牌组设置
|
||||
|
||||
### Alma 和 Claude Code 有什么区别?
|
||||
|
||||
特性| Alma| Claude Code
|
||||
---|---|---
|
||||
界面| 图形化界面| 命令行界面
|
||||
适用场景| 全功能开发环境| 终端快速操作
|
||||
集成功能| 终端、Git、浏览器等| 纯命令行工具
|
||||
学习曲线| 较低| 较高
|
||||
|
||||
可以根据具体需求选择使用。
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
|
||||
## ✅ 完成
|
||||
|
||||
🎉 **配置完成!现在你可以愉快地使用 Alma 进行 AI 辅助编程了!**
|
||||
|
||||
记住以下要点:
|
||||
|
||||
* ✅ 选择「全选」上下文范围
|
||||
* ✅ 根据任务选择合适的模型
|
||||
* ✅ 充分利用 Alma 的集成功能
|
||||
* ✅ 定期检查 API 余额
|
||||
268
apidoc/apps/cherry-studio.md
Normal file
268
apidoc/apps/cherry-studio.md
Normal file
@ -0,0 +1,268 @@
|
||||
# CherryStudio 配置指南
|
||||
|
||||
**全能的 AI 助手桌面客户端**
|
||||
|
||||
> **官方网站** :<https://www.cherry-ai.com/>**下载地址** :<https://www.cherry-ai.com/download>
|
||||
|
||||
📋 简介
|
||||
|
||||
CherryStudio 是一款功能强大的 AI 助手桌面应用,支持多种主流 AI 模型(Claude、Gemini、GPT 等),为开发者和用户提供统一的 AI 交互界面。本教程将指导你如何配置 CherryStudio 接入 IkunCode 平台。
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
CherryStudio 提供以下强大功能:
|
||||
|
||||
* ✅ **多模型支持** :支持 Claude、Gemini、GPT 等主流 AI 模型
|
||||
* ✅ **统一界面** :一个应用管理所有 AI 服务
|
||||
* ✅ **自定义 API** :支持接入自定义 API 提供商
|
||||
* ✅ **跨平台** :支持 Windows、macOS、Linux
|
||||
* ✅ **本地优先** :数据存储在本地,保护隐私
|
||||
* ✅ **丰富功能** :对话管理、模型切换、参数调整等
|
||||
|
||||
## 🛠️ 安装步骤
|
||||
|
||||
### 第一步:下载安装 CherryStudio
|
||||
|
||||
1. 访问 [CherryStudio 下载页面](<https://www.cherry-ai.com/download>)
|
||||
|
||||
2. 根据你的操作系统选择对应的安装包:
|
||||
|
||||
* **Windows** :下载 `.exe` 安装程序
|
||||
* **macOS** :下载 `.dmg` 镜像文件
|
||||
* **Linux** :下载 `.AppImage` 或 `.deb` 包
|
||||
3. 下载完成后,按照系统提示完成安装
|
||||
|
||||
💡 macOS 用户注意
|
||||
|
||||
如果提示"无法打开,因为它来自身份不明的开发者",请在系统偏好设置 → 安全性与隐私中允许打开。
|
||||
|
||||
### 第二步:获取 OneinAI API Key
|
||||
|
||||
在配置 CherryStudio 之前,需要先从 IkunCode 平台获取 API Key:
|
||||
|
||||
1. 访问 [OneinAI 控制台](<https://api.oneinai.com/console/token>)
|
||||
2. 登录你的账户
|
||||
3. 根据需要创建对应的令牌组:
|
||||
* **Claude 模型** :选择 Claude分组
|
||||
* **Gemini 模型** :选择 Gemini分组
|
||||
|
||||

|
||||
|
||||
4. 保存生成的 API Key
|
||||
|
||||
📋 配置快速参考
|
||||
|
||||
模型| 提供商类型| API 地址| 令牌组
|
||||
---|---|---|---
|
||||
Claude| `Anthropic`| `https://api.oneinai.com/v1/messages`| Claude分组
|
||||
Gemini| `Gemini`| `https://api.oneinai.com/v1beta/models`| Gemini分组
|
||||
|
||||
## 🔧 配置 Claude 模型
|
||||
|
||||
### 第一步:进入设置页面
|
||||
|
||||
1. 打开 CherryStudio 应用
|
||||
2. 点击左下角的「设置」或「偏好设置」
|
||||
3. 选择「模型配置」或「API 配置」选项
|
||||
|
||||
### 第二步:选择 Claude 模型类型
|
||||
|
||||

|
||||
|
||||
在模型列表中选择你需要的 Claude 模型
|
||||
|
||||
### 第三步:配置 Claude API
|
||||
|
||||
在 Claude 配置界面中填写以下信息:
|
||||
|
||||

|
||||
|
||||
**配置参数** :
|
||||
|
||||
* **提供商类型** :选择 `Anthropic`
|
||||
* **API 地址** :`https://api.oneinai.com`
|
||||
* **API Key** :粘贴你从 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 获取的 Claude API Key
|
||||
* **模型名称** :输入上一步选择的模型名称(如 `claude-sonnet-4-6`)
|
||||
|
||||
## 🔧 配置 Gemini 模型
|
||||
|
||||
### 第一步:选择 Gemini 模型类型
|
||||
|
||||

|
||||
|
||||
在模型列表中选择你需要的 Gemini 模型:
|
||||
|
||||
* **Gemini 3 Flash Preview** :`gemini-3-flash-preview` \- 最新版本,速度快,性能优秀(推荐)
|
||||
* **Gemini 3 Pro Preview** :`gemini-3-pro-preview` \- 高性能,适合复杂任务
|
||||
* **Gemini 2.0 Flash** :快速响应,适合简单对话
|
||||
|
||||
⚠️ 注意
|
||||
|
||||
* Gemini 和 Claude 需要使用不同的 API Key(不同的令牌组)
|
||||
* 确保你在 IkunCode 平台创建了对应的令牌组
|
||||
|
||||
### 第二步:配置 Gemini API
|
||||
|
||||
在 Gemini 配置界面中填写以下信息:
|
||||
|
||||

|
||||
|
||||
**配置参数** :
|
||||
|
||||
* **提供商类型** :选择 `Gemini`
|
||||
* **API 地址** :`https://api.oneinai.com/v1beta/models`
|
||||
* **API Key** :粘贴你从 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 获取的 Gemini API Key
|
||||
* **模型名称** :输入上一步选择的模型名称(如 `gemini-3-flash-preview`)
|
||||
|
||||
## 💬 开始使用
|
||||
|
||||
### 创建新对话
|
||||
|
||||
1. 点击「新建对话」或「New Chat」按钮
|
||||
2. 在模型选择器中选择已配置的模型
|
||||
3. 开始与 AI 对话
|
||||
|
||||
### 切换模型
|
||||
|
||||
在对话过程中,你可以随时切换不同的模型:
|
||||
|
||||
1. 点击顶部的模型选择器
|
||||
2. 选择其他已配置的模型
|
||||
3. 继续对话(上下文可能会保留或重置,取决于应用设置)
|
||||
|
||||
### 调整参数
|
||||
|
||||
CherryStudio 通常支持调整以下参数:
|
||||
|
||||
* **Temperature** (温度):控制回复的随机性(0-1)
|
||||
* **Max Tokens** (最大令牌数):控制回复长度
|
||||
* **Top P** :控制采样范围
|
||||
|
||||
💡 参数建议
|
||||
|
||||
* 编程任务:Temperature 0.2-0.5(更准确)
|
||||
* 创意写作:Temperature 0.7-0.9(更有创意)
|
||||
* 日常对话:Temperature 0.5-0.7(平衡)
|
||||
|
||||
## 🎯 最佳实践
|
||||
|
||||
### 1\. 合理选择模型
|
||||
|
||||
不同任务使用不同模型:
|
||||
|
||||
* **代码编写** :Claude Sonnet 4.5(`claude-sonnet-4-5-20250929`)
|
||||
* **快速对话** :Gemini 3 Flash Preview(`gemini-3-flash-preview`)
|
||||
* **复杂推理** :Claude Opus 4.5(`claude-opus-4-5-20251101`)
|
||||
* **多模态任务** :Gemini 3 Pro Preview(支持图片)
|
||||
|
||||
### 2\. 管理 API 使用
|
||||
|
||||
* 定期检查 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 的余额
|
||||
* 为不同用途创建不同的 API Key
|
||||
* 避免在公共场合泄露 API Key
|
||||
|
||||
### 3\. 优化对话体验
|
||||
|
||||
* 使用清晰的提示词
|
||||
* 合理设置上下文长度
|
||||
* 善用对话历史管理功能
|
||||
|
||||
## 🔍 与其他客户端的对比
|
||||
|
||||
特性| CherryStudio| Alma| Hapi
|
||||
---|---|---|---
|
||||
界面类型| 桌面应用| 桌面应用| Web/PWA
|
||||
多模型支持| ✅| ✅| ✅
|
||||
代码编辑| 部分支持| ✅| ✅
|
||||
终端集成| ❌| ✅| ✅
|
||||
远程访问| ❌| ❌| ✅
|
||||
学习曲线| 低| 中| 中
|
||||
|
||||
**选择建议** :
|
||||
|
||||
* **纯对话需求** :CherryStudio(界面简洁,易上手)
|
||||
* **编程开发** :Alma 或 Hapi(功能更强大)
|
||||
* **远程控制** :Hapi(独有功能)
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 提示 API Key 无效?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* API Key 输入错误
|
||||
* 令牌组选择错误(只允许逆向分组的 Key 不能用于 Gemini)
|
||||
* 余额不足
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 检查 API Key 是否完整复制
|
||||
2. 确认在 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 创建了正确的令牌组(Claude 用 只允许逆向分组,Gemini 用 gemini分组)
|
||||
3. 查看账户余额是否充足
|
||||
|
||||
### 模型列表为空?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* Base URL 配置错误
|
||||
* 网络连接问题
|
||||
* API Key 权限不足
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 确认 Claude 的 API 地址为 `https://api.oneinai.com/v1/messages`
|
||||
2. 确认 Gemini 的 API 地址为 `https://api.oneinai.com/v1beta/models`
|
||||
3. 检查网络连接
|
||||
4. 重新获取 API Key 并确保令牌组权限正确
|
||||
|
||||
### 对话响应速度慢?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* 网络延迟
|
||||
* 选择的模型较大
|
||||
* 上下文过长
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 检查网络连接质量
|
||||
2. 尝试使用更快的模型(如 Gemini Flash)
|
||||
3. 清理或减少对话历史
|
||||
|
||||
### 如何同时使用多个模型?
|
||||
|
||||
在 CherryStudio 中:
|
||||
|
||||
1. 分别配置不同的模型提供商
|
||||
2. 在新建对话时选择对应的模型
|
||||
3. 可以创建多个对话窗口,每个使用不同模型
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看:
|
||||
|
||||
* [IkunCode 控制台](<https://api.oneinai.com/console/token>)
|
||||
* [IkunCode FAQ](</support/faq>)
|
||||
* [售后支持](</support/after-sales>)
|
||||
* [CherryStudio 官方文档](<https://www.cherry-ai.com/>)
|
||||
|
||||
## ✅ 完成
|
||||
|
||||
🎉 **配置完成!现在你可以使用 CherryStudio 愉快地与 AI 对话了!**
|
||||
|
||||
记住以下要点:
|
||||
|
||||
* ✅ 不同模型使用不同的 API Key(不同令牌组)
|
||||
* ✅ Claude API 地址:`https://api.oneinai.com/v1/messages`
|
||||
* ✅ Gemini API 地址:`https://api.oneinai.com/v1beta/models`
|
||||
* ✅ 根据任务选择合适的模型
|
||||
* ✅ 定期检查 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 的余额
|
||||
* ✅ 妥善保管你的 API Key
|
||||
|
||||
* * *
|
||||
|
||||
**相关教程** :
|
||||
|
||||
* [Alma 客户端配置](</apps/alma>)
|
||||
* [Hapi 远程控制](</apps/hapi>)
|
||||
* [IkunCode 控制台](<https://api.oneinai.com/console/token>)
|
||||
325
apidoc/apps/hapi-advanced.md
Normal file
325
apidoc/apps/hapi-advanced.md
Normal file
@ -0,0 +1,325 @@
|
||||
# Hapi 进阶配置:Cloudflare 优选 IP 高速穿透
|
||||
|
||||
**没有公网 IP?使用 Cloudflare 优选 IP,打造高速内网穿透通道**
|
||||
|
||||
> **适用场景** :已配置 Cloudflare Tunnel,但访问速度慢、延迟高 **解决方案** :利用 Cloudflare for SaaS + 优选 IP 服务,绕过拥堵节点 **前置要求** :已完成 [Hapi 基础配置](</apps/hapi>),拥有两个域名
|
||||
|
||||
## 📺 视频教程
|
||||
|
||||
推荐观看
|
||||
|
||||
[没有公网IP?cloudflare优选IP,高速内网穿透 - 哔哩哔哩](<https://www.bilibili.com/video/BV1PPy6YzE5C>)
|
||||
|
||||
视频详细演示了完整的配置过程,强烈建议先观看视频再进行操作。
|
||||
|
||||
## 🎯 你正在解决什么问题?
|
||||
|
||||
### 默认 Tunnel 的痛点
|
||||
|
||||
当你直接使用 Cloudflare Tunnel 绑定域名时:
|
||||
|
||||
* ❌ Cloudflare 分配的 Anycast IP 在国内可能被绕路(绕到美国、欧洲)
|
||||
* ❌ 运营商 QoS 限速,访问速度慢
|
||||
* ❌ 延迟高达几百毫秒,严重影响使用体验
|
||||
|
||||

|
||||
|
||||
### 优选 IP 方案的优势
|
||||
|
||||
通过本教程的配置:
|
||||
|
||||
* ✅ 强制流量走对国内网络友好的节点(香港、新加坡等)
|
||||
* ✅ 大幅提升访问速度,延迟降低到几十毫秒
|
||||
* ✅ 完全免费,利用 Cloudflare 企业级功能
|
||||
* ✅ 稳定性高,自动切换最优路由
|
||||
|
||||

|
||||
|
||||
🚀 速度提升对比
|
||||
|
||||
从上面两张图可以看到,优选 IP 后访问速度得到了**显著提升** ,延迟从几百毫秒降低到几十毫秒,页面加载也更加流畅!
|
||||
|
||||
## 🔍 原理解析
|
||||
|
||||
### 流量走向链路
|
||||
|
||||
当用户访问你的域名时,流量是这样流转的:
|
||||
|
||||
|
||||
用户浏览器
|
||||
↓
|
||||
DNS 解析:hapi.justdo.xin
|
||||
↓
|
||||
CNAME → cdn.ttdk.fun
|
||||
↓
|
||||
CNAME → isp.qzz.io(优选 IP 调度器)
|
||||
↓
|
||||
返回最优 Cloudflare IP(根据用户运营商)
|
||||
↓
|
||||
Cloudflare 边缘节点(通过 Host Header 识别)
|
||||
↓
|
||||
SaaS 路由:hapi.justdo.xin → hapi.ttdk.fun
|
||||
↓
|
||||
Cloudflare Tunnel(加密隧道)
|
||||
↓
|
||||
你的本地服务器 localhost:3006
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
|
||||
💡 提示
|
||||
|
||||
[isp.qzz.io](<https://isp.qzz.io/>) 在这里充当"智能交警"的角色,根据你的网络环境自动选择最优路线。
|
||||
|
||||
### 核心技术要点
|
||||
|
||||
1. **优选 IP 调度器** :[isp.qzz.io](<https://isp.qzz.io/>) 会根据用户的网络环境(电信/联通/移动),返回当前速度最快、延迟最低的 Cloudflare 官方 CDN 节点 IP
|
||||
|
||||
2. **Cloudflare for SaaS** :通过 Custom Hostnames 功能,把"访问域名"和"隧道域名"解耦,实现"走优选 IP 进隧道"
|
||||
|
||||
3. **DNS 链式解析** :通过 CNAME 链,把用户请求引导到优选 IP,同时保持 Cloudflare 对域名的正确识别
|
||||
|
||||
💡 关于优选 IP 调度器
|
||||
|
||||
[isp.qzz.io](<https://isp.qzz.io/>) 是一个社区维护的 Cloudflare 优选 IP 调度服务,它会自动测速并返回对你当前网络环境最优的 Cloudflare CDN 节点。访问该网站可以查看更多信息和使用说明。
|
||||
|
||||
## 🛠️ 配置步骤
|
||||
|
||||
### 前置准备
|
||||
|
||||
你需要准备:
|
||||
|
||||
1. **主力域名** :用于展示给用户访问(例如:`hapi.justdo.xin`)
|
||||
2. **辅助域名** :用于承载 Cloudflare Tunnel(例如:`ttdk.fun`)
|
||||
3. 两个域名都需要托管在 Cloudflare
|
||||
|
||||
⚠️ 重要说明
|
||||
|
||||
* 主力域名和辅助域名**不能是同一个域名**
|
||||
* 辅助域名需要是你自己拥有的,不能用别人的
|
||||
* 两个域名都必须在 Cloudflare 上管理
|
||||
|
||||
### 第一步:配置 Cloudflare Tunnel(辅助域名)
|
||||
|
||||
在辅助域名(例如 `ttdk.fun`)上设置 Tunnel:
|
||||
|
||||
1. 登录 Cloudflare,选择辅助域名
|
||||
2. 进入 **Zero Trust → Access → Tunnels**
|
||||
3. 创建隧道并安装 cloudflared
|
||||
4. 配置公共主机名:
|
||||
* **子域名** :`hapi`
|
||||
* **域名** :`ttdk.fun`
|
||||
* **服务** :`http://localhost:3006`
|
||||
|
||||
完成后你应该能通过 `hapi.ttdk.fun` 访问你的 Hapi 服务。
|
||||
|
||||
### 第二步:启用 Cloudflare for SaaS(辅助域名)
|
||||
|
||||
在辅助域名(`ttdk.fun`)上启用 SaaS 功能:
|
||||
|
||||
1. 进入 Cloudflare 控制台
|
||||
2. 选择 `ttdk.fun` 域名
|
||||
3. 进入 **SSL/TLS → Custom Hostnames**
|
||||
4. 点击 **Add Custom Hostname**
|
||||
5. 填写:
|
||||
* **Custom Hostname** :`hapi.justdo.xin`(主力域名)
|
||||
* **Wildcard** :不勾选
|
||||
6. 点击 **Add Custom Hostname**
|
||||
|
||||
💡 提示
|
||||
|
||||
添加后会生成 2 条 TXT 验证记录,先不着急配置,继续下一步。
|
||||
|
||||
### 第三步:配置 DNS 解析(主力域名)
|
||||
|
||||
在主力域名(`justdo.xin`)的 DNS 设置中添加以下记录:
|
||||
|
||||
#### 3.1 添加 SSL 验证记录
|
||||
|
||||
从第二步中复制 Cloudflare 生成的 2 条 TXT 记录,添加到主力域名的 DNS:
|
||||
|
||||
类型| 名称| 内容| 代理状态
|
||||
---|---|---|---
|
||||
TXT| `_acme-challenge.hapi`| `xxxxxxxxxx`(从 SaaS 页面复制)| 仅限 DNS
|
||||
TXT| `_acme-challenge.hapi`| `yyyyyyyyyy`(从 SaaS 页面复制)| 仅限 DNS
|
||||
|
||||
#### 3.2 添加 CNAME 记录
|
||||
|
||||
类型| 名称| 目标| 代理状态
|
||||
---|---|---|---
|
||||
CNAME| `cdn`| `isp.qzz.io`| 仅限 DNS ⚠️
|
||||
CNAME| `hapi`| `cdn.justdo.xin`| 仅限 DNS ⚠️
|
||||
|
||||
🚨 关键配置
|
||||
|
||||
**必须关闭小黄云(代理状态设为 "仅限 DNS")!**
|
||||
|
||||
如果开启代理,会导致 DNS 解析链中断,无法触发优选 IP。
|
||||
|
||||
### 第四步:配置回退源(辅助域名)
|
||||
|
||||
在辅助域名(`ttdk.fun`)的 DNS 设置中:
|
||||
|
||||
类型| 名称| 目标| 代理状态
|
||||
---|---|---|---
|
||||
CNAME| `hapi`| `[你的隧道ID].cfargotunnel.com`| 已代理 ✅
|
||||
|
||||
💡 提示
|
||||
|
||||
这条记录通常在创建 Tunnel 时自动生成。确保小黄云是**开启** 状态(已代理)。
|
||||
|
||||
### 第五步:等待 SSL 证书生效
|
||||
|
||||
1. 回到辅助域名的 **SSL/TLS → Custom Hostnames** 页面
|
||||
2. 查看 `hapi.justdo.xin` 的状态
|
||||
3. 等待几分钟,状态变为 **Active(有效)** 即表示配置成功
|
||||
|
||||
⏳ 耐心等待
|
||||
|
||||
SSL 证书签发通常需要 5-15 分钟,请耐心等待。如果超过 30 分钟仍未生效,检查 TXT 记录是否正确添加。
|
||||
|
||||
## ✅ 验证配置
|
||||
|
||||
### 测试访问
|
||||
|
||||
在浏览器中访问:`https://hapi.justdo.xin`
|
||||
|
||||
如果能正常打开 Hapi 界面,说明配置成功!
|
||||
|
||||
### 测试速度提升
|
||||
|
||||
使用 ping 或测速工具对比:
|
||||
|
||||
**优化前** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
ping hapi.ttdk.fun
|
||||
# 延迟通常 200-500ms
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**优化后** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
ping hapi.justdo.xin
|
||||
# 延迟通常 20-100ms
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
## 🎓 角色分配总结
|
||||
|
||||
角色| 域名示例| 作用
|
||||
---|---|---
|
||||
**主力域名**| `hapi.justdo.xin`| 你最终展示给用户访问的地址
|
||||
**辅助域名**| `hapi.ttdk.fun`| 承载 Tunnel 的"回退源",用户不直接感知
|
||||
**优选 IP 调度器**| [isp.qzz.io](<https://isp.qzz.io/>)| 像"交警",告诉流量该走哪条不堵的路
|
||||
**中转域名**| `cdn.justdo.xin`| 作为跳板,把主力域名引向优选 IP 池
|
||||
|
||||
## 🔧 故障排查
|
||||
|
||||
### SSL 证书一直显示 Pending?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* TXT 记录添加错误或未生效
|
||||
* DNS 传播未完成
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 使用 [DNS 检查工具](<https://dnschecker.org/>) 验证 TXT 记录
|
||||
2. 等待 DNS 全球传播(最多 24 小时)
|
||||
3. 重新添加 Custom Hostname
|
||||
|
||||
### 访问显示 526 错误?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* 辅助域名的 `hapi` 记录未开启代理(小黄云)
|
||||
* Tunnel 未正确配置
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 确保 `hapi.ttdk.fun` 的小黄云是**开启** 状态
|
||||
2. 检查 Tunnel 是否正常运行
|
||||
|
||||
### 访问仍然很慢?
|
||||
|
||||
**可能原因** :
|
||||
|
||||
* 主力域名的 CNAME 记录开启了代理
|
||||
* DNS 解析链断裂
|
||||
|
||||
**解决方法** :
|
||||
|
||||
1. 确保 `hapi.justdo.xin` 和 `cdn.justdo.xin` 的小黄云都是**关闭** 状态
|
||||
2. 使用 `nslookup` 检查 DNS 解析链是否完整
|
||||
|
||||
## 🚀 进阶优化
|
||||
|
||||
### 自建优选 IP 服务
|
||||
|
||||
如果你追求极致稳定,可以:
|
||||
|
||||
1. 使用 CloudflareSpeedTest 工具本地测速
|
||||
2. 手动选择最优 IP
|
||||
3. 创建自己的优选域名,替代 `isp.qzz.io`
|
||||
|
||||
### 多运营商优化
|
||||
|
||||
可以针对不同运营商配置不同的优选路径:
|
||||
|
||||
* 电信用户:`cdn-ct.yourdomain.com`
|
||||
* 联通用户:`cdn-cu.yourdomain.com`
|
||||
* 移动用户:`cdn-cm.yourdomain.com`
|
||||
|
||||
通过 DNS 智能解析(GeoDNS),根据用户运营商返回不同的 CNAME 记录。
|
||||
|
||||
## 📚 相关资源
|
||||
|
||||
* [Cloudflare for SaaS 官方文档](<https://developers.cloudflare.com/cloudflare-for-platforms/cloudflare-for-saas/>)
|
||||
* [Cloudflare Tunnel 文档](<https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/>)
|
||||
* [isp.qzz.io - 优选 IP 调度器](<https://isp.qzz.io/>)
|
||||
* [视频教程:cloudflare优选IP配置](<https://www.bilibili.com/video/BV1PPy6YzE5C>)
|
||||
|
||||
## ⚠️ 安全提醒
|
||||
|
||||
1. 不要泄露你的 Tunnel 令牌
|
||||
2. 定期检查 Custom Hostnames 配置
|
||||
3. [isp.qzz.io](<https://isp.qzz.io/>) 是社区维护的优选 IP 服务,虽然可靠但非官方服务,你也可以选择自建优选服务
|
||||
4. 建议配合 Cloudflare Access 限制访问来源
|
||||
|
||||
## 💡 总结
|
||||
|
||||
通过这套配置,你:
|
||||
|
||||
* ✅ 不花一分钱
|
||||
* ✅ 利用 Cloudflare 企业级 SaaS 功能
|
||||
* ✅ 把原本几百毫秒延迟的内网穿透,优化到接近直连的体验
|
||||
* ✅ 打造了一条"高速内网穿透通道"
|
||||
|
||||
这就是目前免费方案中,提升 Cloudflare 内网穿透速度的**天花板级别配置** !
|
||||
|
||||
* * *
|
||||
|
||||
**下一步** :配置完成后,你可以愉快地在任何地方高速访问你的 Hapi 服务了!🎉
|
||||
197
apidoc/apps/hapi.md
Normal file
197
apidoc/apps/hapi.md
Normal file
@ -0,0 +1,197 @@
|
||||
# Hapi 远程控制配置指南
|
||||
|
||||
**随时随地远程控制你的 AI 编程助手**
|
||||
|
||||
> **作者** :[weishu](<https://github.com/tiann>)**官方文档** :<https://hapi.run/>
|
||||
|
||||
📋 简介
|
||||
|
||||
Hapi 是一个本地优先的应用程序,可以让你在本地运行 Claude Code / Codex / Gemini 会话,并通过 Web / PWA / Telegram Mini App 进行远程控制。这意味着你可以在手机或浏览器上监控和管理你的 AI 编程任务。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
Hapi 官网| <https://hapi.run/>
|
||||
Hapi 仓库| <https://github.com/tiann/hapi>
|
||||
快速开始| [官方快速开始文档](<https://hapi.run/docs/guide/quick-start>)
|
||||
Cloudflare Tunnel 文档| [创建远程隧道](<https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/create-remote-tunnel/>)
|
||||
|
||||
## ✨ 核心功能
|
||||
|
||||
Hapi 提供以下强大功能:
|
||||
|
||||
* ✅ **无缝切换** :在本地原生环境和远程控制之间无缝切换
|
||||
* ✅ **远程会话** :从任何设备发起远程会话
|
||||
* ✅ **移动监控** :通过手机或浏览器监控和管理任务
|
||||
* ✅ **权限控制** :远程批准/拒绝工具权限
|
||||
* ✅ **文件浏览** :浏览文件和查看 git diff
|
||||
* ✅ **进度跟踪** :通过待办事项列表跟踪进度
|
||||
* ✅ **多后端支持** :支持 Claude Code、Codex、Gemini
|
||||
|
||||
## 🛠️ 安装步骤
|
||||
|
||||
### 第一步:安装 Hapi
|
||||
|
||||
💡 前置要求
|
||||
|
||||
请确保已安装 Node.js 18+ 环境。如需安装,请参考 [Node.js 环境安装](</node/windows>)。
|
||||
|
||||
访问 [Hapi 官方快速开始文档](<https://hapi.run/docs/guide/quick-start>) 了解详细的安装方法。
|
||||
|
||||
推荐使用 npx 快速启动 Hapi 服务器:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npx @twsxtd/hapi server
|
||||
|
||||
1
|
||||
|
||||
启动后会显示 Token 凭证和访问地址。
|
||||
|
||||
⚠️ 重要提示
|
||||
|
||||
**请务必保存好 Token 凭证!** 这是你连接和控制 Hapi 服务的唯一凭证。
|
||||
|
||||

|
||||
|
||||
### 第二步:启动 AI 会话
|
||||
|
||||
在项目目录下执行以下命令启动对应的 AI 服务:
|
||||
|
||||
**启动 Claude Code** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
hapi claude
|
||||
|
||||
1
|
||||
|
||||
**启动 Codex** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
hapi codex
|
||||
|
||||
1
|
||||
|
||||
**启动 Gemini** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
hapi gemini
|
||||
|
||||
1
|
||||
|
||||

|
||||
|
||||
启动成功后,前端界面会显示连接状态:
|
||||
|
||||

|
||||
|
||||
🎉 局域网访问
|
||||
|
||||
此时你已经可以在本地局域网内通过 `http://<server-ip>:3006` 访问和控制你的 AI 编程助手了!
|
||||
|
||||
## 🌐 配置 Cloudflare 内网穿透
|
||||
|
||||
如果你想在任何地方(包括外网)访问你的 Hapi 服务,可以通过 Cloudflare Tunnel 实现内网穿透。
|
||||
|
||||
### 前置要求
|
||||
|
||||
* 一个域名(任意域名均可)
|
||||
* Cloudflare 账号(免费账号即可)
|
||||
|
||||
### 配置流程
|
||||
|
||||
按照 [Cloudflare Tunnel 官方文档](<https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/get-started/create-remote-tunnel/>) 进行配置:
|
||||
|
||||
**1\. 登录 Cloudflare Zero Trust 控制台**
|
||||
|
||||

|
||||
|
||||
**2\. 创建新的 Tunnel**
|
||||
|
||||

|
||||
|
||||
**3\. 安装 cloudflared 客户端**
|
||||
|
||||

|
||||
|
||||
**4\. 配置隧道名称**
|
||||
|
||||

|
||||
|
||||
**5\. 配置公共主机名**
|
||||
|
||||

|
||||
|
||||
**6\. 设置服务地址**
|
||||
|
||||
将服务地址设置为 `localhost:3006`(Hapi 默认端口)
|
||||
|
||||

|
||||
|
||||
**7\. 完成配置**
|
||||
|
||||

|
||||
|
||||
## ✅ 使用 Hapi
|
||||
|
||||
配置完成后,你可以:
|
||||
|
||||
1. **本地访问** :`http://localhost:3006`
|
||||
2. **局域网访问** :`http://<server-ip>:3006`
|
||||
3. **公网访问** :`https://your-domain.com`(如果配置了 Cloudflare Tunnel)
|
||||
|
||||
使用步骤:
|
||||
|
||||
1. 打开浏览器访问 Hapi 地址
|
||||
2. 输入 Token 登录
|
||||
3. 选择要启动的 AI 后端(Claude / Codex / Gemini)
|
||||
4. 开始远程控制你的 AI 编程助手
|
||||
|
||||
💡 使用技巧
|
||||
|
||||
* 在手机浏览器中访问可以随时随地监控任务进度
|
||||
* 可以安装为 PWA 应用,获得类似原生应用的体验
|
||||
* 支持多设备同时连接和控制
|
||||
|
||||
## 🔒 安全建议
|
||||
|
||||
* 不要将 Token 泄露给他人
|
||||
* 如果使用公网访问,建议启用 Cloudflare 的安全功能(如 Access 策略)
|
||||
* 定期更换 Token
|
||||
* 仅在可信网络环境下使用
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 提示无法连接到服务器?
|
||||
|
||||
* 检查 Hapi 服务是否正常运行
|
||||
* 确认防火墙未阻止 3006 端口
|
||||
* 检查 Token 是否正确
|
||||
|
||||
### Cloudflare Tunnel 配置失败?
|
||||
|
||||
* 确认域名已正确添加到 Cloudflare
|
||||
* 检查 cloudflared 客户端是否正确安装
|
||||
* 查看 cloudflared 日志排查问题
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或访问 [Hapi GitHub Issues](<https://github.com/tiann/hapi/issues>)。
|
||||
|
||||
## 🚀 进阶优化
|
||||
|
||||
如果你想进一步提升 Hapi 的访问速度(特别是在国内网络环境下),可以配置 Cloudflare 优选 IP:
|
||||
|
||||
💡 速度优化
|
||||
|
||||
通过配置 Cloudflare 优选 IP,可以将访问延迟从几百毫秒降低到几十毫秒,实现接近直连的体验。
|
||||
|
||||
👉 查看详细教程:[Hapi 进阶:Cloudflare 优选 IP 高速穿透](</apps/hapi-advanced>)
|
||||
498
apidoc/apps/openclaw.md
Normal file
498
apidoc/apps/openclaw.md
Normal file
@ -0,0 +1,498 @@
|
||||
# OpenClaw 配置指南
|
||||
|
||||
**多平台 AI 编程代理,支持终端 TUI、Web Dashboard 和 Telegram Bot**
|
||||
|
||||
📋 简介
|
||||
|
||||
OpenClaw 是一款功能丰富的 AI 编程代理工具,支持终端 TUI 交互、Web Dashboard 管理和 Telegram Bot 远程访问。适合需要在服务器环境中运行 AI 编程助手的开发者。
|
||||
|
||||
⚠️ 适用环境
|
||||
|
||||
此教程适合 **Linux 云服务器** 和 **macOS** 系统用户。
|
||||
|
||||
🚨 遇到 403 Your request was blocked?
|
||||
|
||||
使用 OneinAI 渠道时,**必须** 在供应商配置中添加 `headers` 字段,否则请求会被拦截返回 403:
|
||||
|
||||
json
|
||||
|
||||
|
||||
"headers": {
|
||||
"User-Agent": "claude-cli/2.0.76 (external, cli)",
|
||||
"Authorization": "Bearer sk-xxxx"
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
* `Authorization` 的值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
|
||||
* `User-Agent` 必须保持示例中的格式,不可省略或随意修改
|
||||
* 修改后执行 `openclaw gateway restart` 重启网关生效
|
||||
|
||||
详见下方 完整配置实例。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
OpenClaw 官网| <https://openclaw.ai>
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
* ✅ **终端 TUI** :命令行交互界面,适合 SSH 环境
|
||||
* ✅ **Web Dashboard** :浏览器可视化管理面板
|
||||
* ✅ **Telegram Bot** :支持通过 Telegram 远程对话
|
||||
* ✅ **多模型支持** :Claude、GPT、Gemini 等多种模型
|
||||
* ✅ **Gateway 网关** :内置网关服务,支持反向代理
|
||||
* ✅ **Skill 扩展** :可通过 Dashboard 安装扩展技能
|
||||
|
||||
## 🛠️ 安装与初始化
|
||||
|
||||
### 第一步:运行安装脚本
|
||||
|
||||
登录服务器 SSH 或在 macOS 终端中运行以下命令:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -fsSL https://openclaw.ai/install.sh | bash
|
||||
|
||||
1
|
||||
|
||||
耐心等待安装流程结束。
|
||||
|
||||
### 第二步:初始化配置
|
||||
|
||||
安装过程中会依次出现以下选项,按照说明操作:
|
||||
|
||||
步骤| 选择| 说明
|
||||
---|---|---
|
||||
启动方式| **QuickStart**| 快速开始模式
|
||||
供应商设置| **Skip for now**| 先跳过,后续手动编辑配置文件
|
||||
适配器选择| **anthropic**| 选择 Anthropic 适配器
|
||||
模型选择| **opus-4.5**| 或选择你需要的模型
|
||||
社交适配器| 按需选择| 如 Telegram(可选)
|
||||
Skill 安装| 跳过| 后续可通过 Dashboard 安装
|
||||
Hook 选择| 全选| 使用空格键全选后回车确认
|
||||
打开方式| 跳过| 先跳过
|
||||
Shell 补全| **yes**| 安装命令行自动补全
|
||||
|
||||
## ⚙️ 渠道与模型配置
|
||||
|
||||
### 第一步:编辑配置文件
|
||||
|
||||
打开 OpenClaw 的配置文件进行编辑:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
vim ~/.openclaw/openclaw.json
|
||||
|
||||
1
|
||||
|
||||
参照下方 完整配置实例 填入你的供应商和模型信息。
|
||||
|
||||
### 第二步:填入 API Key
|
||||
|
||||
在 `models.providers` 中配置供应商信息,将 `apiKey` 和 `headers.Authorization` 替换为你在 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 创建的 API Key。
|
||||
|
||||
💡 支持的分组
|
||||
|
||||
OpenClaw 使用 **逆向分组** 的 API Key。
|
||||
|
||||

|
||||
|
||||
请在 [创建专属 Key](</guide/create-key>) 时选择逆向分组。
|
||||
|
||||
### 第三步:重启网关
|
||||
|
||||
bash
|
||||
|
||||
|
||||
openclaw gateway restart
|
||||
|
||||
1
|
||||
|
||||
### 第四步:验证配置
|
||||
|
||||
运行以下命令进入 TUI 界面测试模型是否正常:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
openclaw tui
|
||||
|
||||
1
|
||||
|
||||
测试成功后输入 `/quit` 退出 TUI。
|
||||
|
||||
## 🌐 浏览器访问 Dashboard
|
||||
|
||||
### 获取 Dashboard URL
|
||||
|
||||
在控制台运行命令获取 Dashboard URL,在浏览器中访问即可进入管理面板。
|
||||
|
||||
⚠️ 服务器用户注意
|
||||
|
||||
如果你在远程服务器运行 OpenClaw,需要:
|
||||
|
||||
**1\. 配置反向代理**
|
||||
|
||||
使用 Nginx 或其他反向代理工具反代 OpenClaw 服务,并设置 SSL 证书。
|
||||
|
||||
**2\. 修改配置文件**
|
||||
|
||||
编辑 `~/.openclaw/openclaw.json`,在 `gateway` 字段下添加:
|
||||
|
||||
json
|
||||
|
||||
|
||||
"controlUi": {
|
||||
"allowInsecureAuth": true
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
**3\. 重启网关**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
openclaw gateway restart
|
||||
|
||||
1
|
||||
|
||||
访问带有 Token 的 Dashboard URL 即可进入后台界面。
|
||||
|
||||
## 🤖 配置 Telegram Bot(可选)
|
||||
|
||||
如果安装时选择了 Telegram 适配器,可以通过以下步骤配置 Bot 访问权限:
|
||||
|
||||
### 第一步:与 Bot 对话
|
||||
|
||||
在 Telegram 中找到你通过 **@BotFather** 创建的机器人,发起对话。
|
||||
|
||||
### 第二步:获取 Pairing Code
|
||||
|
||||
首次对话后会收到一个 **Pairing Code** 。
|
||||
|
||||
### 第三步:授权配对
|
||||
|
||||
在控制台运行以下命令完成授权:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
openclaw pairing approve telegram 你的Pairing_Code
|
||||
|
||||
1
|
||||
|
||||
配对成功后,即可通过 Telegram Bot 与 OpenClaw 进行远程对话。
|
||||
|
||||
## 📄 完整配置实例
|
||||
|
||||
以下是一份接入 IkunCode 渠道的 `openclaw.json` 完整配置参考(路径:`~/.openclaw/openclaw.json`):
|
||||
|
||||
💡 说明
|
||||
|
||||
配置中的 `sk-xxxx` 和 `xxxxx` 为占位符,请替换为你自己的 API Key 和 Bot Token。
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"messages": {
|
||||
"ackReactionScope": "group-mentions"
|
||||
},
|
||||
"agents": {
|
||||
"defaults": {
|
||||
"model": {
|
||||
"primary": "ikuncode-claude/claude-opus-4-5-20251101"
|
||||
},
|
||||
"maxConcurrent": 4,
|
||||
"subagents": {
|
||||
"maxConcurrent": 8
|
||||
},
|
||||
"compaction": {
|
||||
"mode": "safeguard"
|
||||
},
|
||||
"workspace": "C:\\\\Users\\\\Administrator\\\\.openclaw\\\\workspace"
|
||||
}
|
||||
},
|
||||
"models": {
|
||||
"providers": {
|
||||
"ikuncode-claude": {
|
||||
"baseUrl": "https://api.oneinai.com/v1",
|
||||
"apiKey": "sk-xxxx",
|
||||
"api": "openai-completions",
|
||||
"headers": {
|
||||
"User-Agent": "claude-cli/2.0.76 (external, cli)",
|
||||
"Authorization": "Bearer sk-xxxx"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "claude-opus-4-5-20251101",
|
||||
"name": "claude-opus-4-5-20251101",
|
||||
"contextWindow": 200000,
|
||||
"maxTokens": 32000,
|
||||
"cost": {
|
||||
"input": 0,
|
||||
"output": 0,
|
||||
"cacheRead": 0,
|
||||
"cacheWrite": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"ikuncode-codex": {
|
||||
"baseUrl": "https://api.oneinai.com/v1",
|
||||
"apiKey": "sk-xxxx",
|
||||
"api": "openai-completions",
|
||||
"headers": {
|
||||
"User-Agent": "codex_cli_rs/0.77.0 (Windows 10.0.26100; x86_64) WindowsTerminal",
|
||||
"Authorization": "Bearer sk-xxxx"
|
||||
},
|
||||
"models": [
|
||||
{
|
||||
"id": "gpt-5.2-codex",
|
||||
"name": "gpt-5.2-codex",
|
||||
"contextWindow": 200000,
|
||||
"maxTokens": 32000,
|
||||
"cost": {
|
||||
"input": 0,
|
||||
"output": 0,
|
||||
"cacheRead": 0,
|
||||
"cacheWrite": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
"gateway": {
|
||||
"mode": "local",
|
||||
"auth": {
|
||||
"mode": "token",
|
||||
"token": "xxxx"
|
||||
},
|
||||
"port": 18789,
|
||||
"bind": "loopback",
|
||||
"tailscale": {
|
||||
"mode": "off",
|
||||
"resetOnExit": false
|
||||
}
|
||||
},
|
||||
"auth": {
|
||||
"profiles": {}
|
||||
},
|
||||
"plugins": {
|
||||
"entries": {
|
||||
"telegram": {
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"channels": {
|
||||
"telegram": {
|
||||
"enabled": true,
|
||||
"botToken": "xxxxx"
|
||||
}
|
||||
},
|
||||
"logging": {
|
||||
"level": "trace",
|
||||
"consoleLevel": "debug",
|
||||
"consoleStyle": "pretty"
|
||||
},
|
||||
"commands": {
|
||||
"restart": true
|
||||
},
|
||||
"skills": {
|
||||
"install": {
|
||||
"nodeManager": "npm"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
|
||||
### 关键字段说明
|
||||
|
||||
字段| 说明
|
||||
---|---
|
||||
`agents.defaults.model.primary`| 默认使用的模型,格式为 `供应商名/模型ID`
|
||||
`agents.defaults.maxConcurrent`| 主代理最大并发数
|
||||
`agents.defaults.subagents.maxConcurrent`| 子代理最大并发数
|
||||
`agents.defaults.compaction.mode`| 上下文压缩模式,`safeguard` 为安全模式
|
||||
`agents.defaults.workspace`| 工作区目录路径,按你的系统修改
|
||||
`models.providers`| 模型供应商配置,可配置多个供应商
|
||||
`models.providers.*.baseUrl`| API 基础地址,IkunCode 统一为 `https://api.oneinai.com/v1`
|
||||
`models.providers.*.apiKey`| 对应分组的 API Key
|
||||
`models.providers.*.api`| 接口协议,固定为 `openai-completions`
|
||||
`models.providers.*.headers`| 请求头,需包含 `User-Agent` 和 `Authorization`
|
||||
`gateway.port`| 网关监听端口,默认 `18789`
|
||||
`gateway.bind`| 绑定模式,`loopback` 仅本机访问
|
||||
`channels.telegram.botToken`| Telegram Bot Token,通过 @BotFather 获取
|
||||
`logging.level`| 日志级别,排查问题时可设为 `trace`
|
||||
|
||||
⚠️ 注意事项
|
||||
|
||||
* **Headers 中的 Authorization** 必须与 `apiKey` 保持一致,格式为 `Bearer sk-xxxx`
|
||||
* **User-Agent** 建议保持示例中的格式,确保请求正常识别
|
||||
* **workspace 路径** :Windows 用户使用 `\\\\` 双反斜杠,Linux/macOS 用户使用 `/` 正斜杠(如 `/root/.openclaw/workspace`)
|
||||
* **cost 全部设为 0** :通过 IkunCode 中转使用时无需在本地计费
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 安装脚本执行失败?
|
||||
|
||||
* 确认网络连接正常,能访问 `openclaw.ai`
|
||||
* 确认系统已安装 `curl` 和 `bash`
|
||||
* 如果在国内服务器,可能需要配置代理
|
||||
|
||||
### 遇到 403 `Your request was blocked` 怎么办?
|
||||
|
||||
如果请求返回 `403 Your request was blocked`,说明缺少正确的请求头。**必须** 在供应商配置中添加 `headers` 字段:
|
||||
|
||||
json
|
||||
|
||||
|
||||
"headers": {
|
||||
"User-Agent": "claude-cli/2.0.76 (external, cli)",
|
||||
"Authorization": "Bearer sk-xxxx"
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
🚨 重要
|
||||
|
||||
* `headers` 中的 `Authorization` 值必须与 `apiKey` 一致,格式为 `Bearer sk-你的密钥`
|
||||
* `User-Agent` 必须保持示例格式,否则请求会被拦截
|
||||
* 配置完成后执行 `openclaw gateway restart` 重启网关
|
||||
|
||||
### Gateway 重启后模型仍不可用?
|
||||
|
||||
* 检查 API Key 是否正确填入
|
||||
* 确认 Key 对应的分组支持你选择的模型
|
||||
* 查看 OpenClaw 日志排查具体错误
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
103
apidoc/apps/opencode.md
Normal file
103
apidoc/apps/opencode.md
Normal file
@ -0,0 +1,103 @@
|
||||
# OpenCode 配置指南
|
||||
|
||||
**开源 AI 编程助手,终端中的智能编码伙伴**
|
||||
|
||||
📋 简介
|
||||
|
||||
OpenCode 是一款开源的 AI 编程助手,可在终端、IDE 或桌面环境中辅助编写、调试和改进代码。支持原生终端 TUI 界面、多会话并行、75+ 模型提供商接入,是命令行开发者的理想工具。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
OpenCode 项目| <https://github.com/opencode-ai/opencode>
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
* ✅ **原生终端 TUI** :专为命令行开发者设计,高效流畅
|
||||
* ✅ **智能 LSP 加载** :自动加载正确的语言服务器,提升上下文理解
|
||||
* ✅ **多会话并行** :支持多个会话同时运行,互不干扰
|
||||
* ✅ **会话链接共享** :可分享会话链接给他人协作
|
||||
* ✅ **75+ 模型支持** :支持多种模型提供商,包括本地模型
|
||||
* ✅ **多平台支持** :终端 CLI、桌面应用(Beta)、IDE 扩展
|
||||
|
||||
## 🛠️ 安装与配置
|
||||
|
||||
### 第一步:安装 OpenCode
|
||||
|
||||
打开终端,运行以下命令全局安装 OpenCode:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g opencode-ai
|
||||
|
||||
1
|
||||
|
||||
安装完成后,在终端输入 `opencode` 命令,若出现 TUI 界面则安装成功。
|
||||
|
||||

|
||||
|
||||
### 第二步:安装 CC-Switch
|
||||
|
||||
查看 [CC-Switch 配置工具](</tools/cc-switch>) 文档,下载并安装 CC-Switch 到本地。
|
||||
|
||||
### 第三步:添加 IkunCode 供应商
|
||||
|
||||
**1\. 选择配置项**
|
||||
|
||||
打开 CC-Switch,上方配置项选择 `OpenCode`,然后点击 **添加供应商** 按钮。
|
||||
|
||||

|
||||
|
||||
**2\. 填写供应商信息**
|
||||
|
||||
按以下说明配置各项参数:
|
||||
|
||||
配置项| 说明
|
||||
---|---
|
||||
**预设供应商**| 选择 `IkunCode`
|
||||
**供应商标识**| 自定义名称,如 `IkunCode-Claude`
|
||||
**接口格式**| Claude 模型选 `Anthropic`;GPT 模型选 `OpenAI`;Gemini 模型选 `Google (Gemini)`
|
||||
**API Key**| 填入你在 [IkunCode 控制台](<https://api.oneinai.com/console/token>) 创建的 Key
|
||||
**额外选项**| 填写 `{"setCacheKey":true}`
|
||||
|
||||
💡 支持的分组
|
||||
|
||||
根据你需要的模型类型,选择正确分组的 API Key:
|
||||
|
||||

|
||||
|
||||
* **Claude 系列** :只允许逆向分组
|
||||
* **GPT 系列** :Codex 分组
|
||||
* **Gemini 系列** :Gemini 分组
|
||||
|
||||
请在 [创建专属 Key](</guide/create-key>) 时选择对应分组。
|
||||
|
||||
## ✅ 验证配置
|
||||
|
||||
1. 重新打开终端,输入 `opencode` 运行
|
||||
2. 输入 `/models` 命令,检查配置的渠道是否出现在模型列表中
|
||||
3. 如果能看到你添加的模型,说明配置成功
|
||||
|
||||

|
||||
|
||||
开始愉快地编码吧!🎉
|
||||
|
||||

|
||||
|
||||
## 常见问题
|
||||
|
||||
### 安装时提示 npm 未找到?
|
||||
|
||||
请先安装 Node.js 环境,参考 [Node.js 环境安装](</node/windows>) 文档。
|
||||
|
||||
### 模型列表中看不到配置的渠道?
|
||||
|
||||
* 确认 CC-Switch 中已正确保存配置
|
||||
* 重启终端后再次运行 `opencode`
|
||||
* 检查 API Key 是否填写正确
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
339
apidoc/deploy/claude-code.md
Normal file
339
apidoc/deploy/claude-code.md
Normal file
@ -0,0 +1,339 @@
|
||||
# Claude Code 部署指南
|
||||
|
||||
| 资源 | 地址 |
|
||||
|------|------|
|
||||
| 官方文档 | [docs.claude.com](https://docs.claude.com/zh-CN/docs/claude-code/overview) |
|
||||
| oneinAI 平台 | [api.oneinai.com](https://api.oneinai.com) |
|
||||
|
||||
## 📋 前置要求
|
||||
|
||||
- 已完成 [Node.js 环境安装](/node/windows),确保 Node.js 18+ 已正确安装
|
||||
- 已在 [oneinAI 平台注册账号](/guide/registration) 并 [创建 API Key](/guide/create-key)
|
||||
- 确保账户余额充足([充值指引](/guide/recharge))
|
||||
|
||||
## ⚡ 首次安装必读:跳过初始化报错
|
||||
|
||||
使用中转渠道时,Claude Code 首次启动会出现以下报错:
|
||||
|
||||

|
||||
|
||||
```
|
||||
Welcome to Claude Code
|
||||
Unable to connect to Anthropic services
|
||||
Failed to connect to api.anthropic.com: ERR_BAD_REQUEST
|
||||
```
|
||||
|
||||
这是因为 Claude Code 首次启动会尝试连接官方 API 进行初始化确认,中转渠道无法通过此步骤。**安装完成后、首次启动前**,请先执行以下任一方法跳过:
|
||||
|
||||
**方法一:使用 CC-Switch 跳过(推荐)**
|
||||
|
||||
打开 [CC-Switch 配置工具](/tools/cc-switch),进入 **设置 → 通用**,开启 **「跳过 Claude Code 初次安装确认」** 选项即可。
|
||||
|
||||

|
||||
|
||||
**方法二:手动修改配置文件**
|
||||
|
||||
在用户主目录下找到 `~/.claude.json` 文件,在末尾添加 `"hasCompletedOnboarding": true` 字段:
|
||||
|
||||
> ⚠️ 注意 JSON 格式:添加字段前,需要在上一个字段末尾**补一个英文逗号**,否则 JSON 格式错误会导致 Claude Code 无法启动。
|
||||
|
||||
```json
|
||||
{
|
||||
"installMethod": "unknown",
|
||||
"autoUpdates": true,
|
||||
"firstStartTime": "2025-07-14T06:11:03.877Z",
|
||||
"userID": "xxxx",
|
||||
"projects": {
|
||||
"/home/your-user": {
|
||||
"allowedTools": [],
|
||||
"history": [],
|
||||
"mcpContextUris": [],
|
||||
"mcpServers": {},
|
||||
"enabledMcpjsonServers": [],
|
||||
"disabledMcpjsonServers": [],
|
||||
"hasTrustDialogAccepted": false,
|
||||
"projectOnboardingSeenCount": 0,
|
||||
"hasClaudeMdExternalIncludesApproved": false,
|
||||
"hasClaudeMdExternalIncludesWarningShown": false
|
||||
}
|
||||
},
|
||||
"hasCompletedOnboarding": true
|
||||
}
|
||||
```
|
||||
|
||||
修改保存后,重新运行 `claude` 即可正常使用。
|
||||
|
||||
> 参考来源:[Claude Code 跳过初始化确认](https://www.cnblogs.com/gordonMlxg/articles/19103691)
|
||||
|
||||
## 🚀 使用 CC-Switch 快速配置(推荐)
|
||||
|
||||
如果您已安装 [CC-Switch 快速配置工具](/tools/cc-switch),可以通过图形界面轻松管理 Claude Code 的配置,无需手动编辑配置文件和环境变量。
|
||||
|
||||
### CC-Switch 优势
|
||||
|
||||
- 图形化界面,操作简单直观
|
||||
- 一键切换不同提供商配置
|
||||
- 自动管理环境变量和配置文件
|
||||
- 支持配置备份与恢复
|
||||
- 无需重启终端即可切换配置
|
||||
|
||||
### 配置步骤
|
||||
|
||||
**1. 启动 CC-Switch 并添加 Claude Code 配置**
|
||||
|
||||
1. 打开 CC-Switch 应用程序
|
||||
2. 点击顶部的「Claude」标签页
|
||||
3. 点击右上角橙色「+」按钮添加新配置
|
||||
|
||||

|
||||
|
||||
**2. 填写提供商配置信息**
|
||||
|
||||
| 字段 | 填写内容 |
|
||||
|------|----------|
|
||||
| 提供商名称 | 自定义名称(如 "oneinAI") |
|
||||
| API Base URL | `https://api.oneinai.com` |
|
||||
| API Key | 从 oneinAI 平台获取的 Claude 专用令牌 |
|
||||
| 模型选择 | 根据需求选择可用的 Claude 模型 |
|
||||
|
||||
填写完成后点击「保存」按钮。
|
||||
|
||||

|
||||
|
||||
> 💡 提示
|
||||
> - 可以添加多个不同的提供商配置(如官方、oneinAI 等)
|
||||
> - CC-Switch 会自动修改 `~/.claude/settings.json` 配置文件
|
||||
> - 切换配置后,关闭并重启 Claude Code 即可生效
|
||||
|
||||
**3. 启用配置并使用**
|
||||
|
||||
1. 在配置列表中找到刚创建的「oneinAI」配置
|
||||
2. 点击配置右侧的「当前使用」按钮(或直接点击配置卡片)
|
||||
3. 配置会被标记为「当前使用」状态(绿色标签)
|
||||
4. 重启 Claude Code,新配置即可生效
|
||||
|
||||
**4. 系统托盘快速切换**
|
||||
|
||||
CC-Switch 支持通过系统托盘快速切换配置:
|
||||
|
||||
1. 右键点击系统托盘中的 CC-Switch 图标
|
||||
2. 在菜单中选择 Claude 分类
|
||||
3. 直接选择要切换到的配置
|
||||
4. 配置立即生效,无需打开主界面
|
||||
|
||||
> ⚠️ 注意事项
|
||||
> - 确保从 oneinAI 平台创建的是 Claude Code 专用令牌
|
||||
> - 切换配置后需要重启 Claude Code 才能生效
|
||||
> - 可以在 CC-Switch 中测试 API 端点速度,选择最优配置
|
||||
|
||||
---
|
||||
|
||||
## ⌨️ 手动命令行配置
|
||||
|
||||
如果您不使用 CC-Switch,也可以通过命令行手动配置 Claude Code。
|
||||
|
||||
### 🖥️ Windows 平台
|
||||
|
||||
#### 系统要求
|
||||
|
||||
- Windows 10 或 Windows 11
|
||||
|
||||
#### 安装步骤
|
||||
|
||||
**方法一:Native Install(推荐)**
|
||||
|
||||
PowerShell:
|
||||
|
||||
```powershell
|
||||
irm https://claude.ai/install.ps1 | iex
|
||||
```
|
||||
|
||||
CMD:
|
||||
|
||||
```cmd
|
||||
curl -fsSL https://claude.ai/install.cmd -o install.cmd && install.cmd && del install.cmd
|
||||
```
|
||||
|
||||
**方法二:NPM 安装(不推荐)**
|
||||
|
||||
> ⚠️ npm 渠道更新滞后,安装的版本通常较旧,建议优先使用上方的 Native 方式。
|
||||
|
||||
```powershell
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
|
||||
#### 验证安装
|
||||
|
||||
```powershell
|
||||
claude --version
|
||||
```
|
||||
|
||||
#### 配置环境变量
|
||||
|
||||
PowerShell:
|
||||
|
||||
```powershell
|
||||
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", "sk-xxx", "User")
|
||||
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", "https://api.oneinai.com", "User")
|
||||
```
|
||||
|
||||
CMD:
|
||||
|
||||
```cmd
|
||||
setx ANTHROPIC_AUTH_TOKEN "sk-xxx"
|
||||
setx ANTHROPIC_BASE_URL "https://api.oneinai.com"
|
||||
```
|
||||
|
||||
> 💡 请将 `sk-xxx` 替换为你在 oneinAI 平台获取的专属 API Key。设置完成后需**重启终端**使环境变量生效。
|
||||
|
||||
#### 启动 Claude Code
|
||||
|
||||
重启终端后,进入项目目录(或任意目录),输入以下命令即可启动:
|
||||
|
||||
```powershell
|
||||
claude
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 🍏 macOS 平台
|
||||
|
||||
#### 系统要求
|
||||
|
||||
- macOS 10.15 (Catalina) 或更高版本
|
||||
|
||||
#### 安装步骤
|
||||
|
||||
**方法一:Homebrew(推荐)**
|
||||
|
||||
```bash
|
||||
brew install --cask claude-code
|
||||
```
|
||||
|
||||
**方法二:Curl Script**
|
||||
|
||||
```bash
|
||||
curl -fsSL https://claude.ai/install.sh | bash
|
||||
```
|
||||
|
||||
**方法三:NPM 安装(不推荐)**
|
||||
|
||||
> ⚠️ npm 渠道更新滞后,安装的版本通常较旧,建议优先使用上方的 Native 方式。
|
||||
|
||||
```bash
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
|
||||
#### 验证安装
|
||||
|
||||
```bash
|
||||
claude -v
|
||||
```
|
||||
|
||||
正常输出类似:`1.0.108 (Claude Code)`
|
||||
|
||||
#### 配置环境变量
|
||||
|
||||
**Bash 用户(默认):**
|
||||
|
||||
```bash
|
||||
echo 'export ANTHROPIC_AUTH_TOKEN="sk-xxx"' >> ~/.bash_profile
|
||||
echo 'export ANTHROPIC_BASE_URL="https://api.oneinai.com"' >> ~/.bash_profile
|
||||
source ~/.bash_profile
|
||||
```
|
||||
|
||||
**Zsh 用户(macOS Catalina+ 默认):**
|
||||
|
||||
```bash
|
||||
echo 'export ANTHROPIC_AUTH_TOKEN="sk-xxx"' >> ~/.zshrc
|
||||
echo 'export ANTHROPIC_BASE_URL="https://api.oneinai.com"' >> ~/.zshrc
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
> 💡 请将 `sk-xxx` 替换为你在 oneinAI 平台获取的专属 API Key。
|
||||
|
||||
#### 启动 Claude Code
|
||||
|
||||
重启终端后,进入项目目录(或任意目录),输入 `claude` 即可启动使用。
|
||||
|
||||
---
|
||||
|
||||
### 🐧 Linux 平台
|
||||
|
||||
#### 系统要求
|
||||
|
||||
- Ubuntu 18.04+、CentOS 7+、Debian 9+ 等主流发行版
|
||||
|
||||
#### 安装步骤
|
||||
|
||||
**方法一:Curl Script(推荐)**
|
||||
|
||||
```bash
|
||||
curl -fsSL https://claude.ai/install.sh | bash
|
||||
```
|
||||
|
||||
**方法二:NPM 安装(不推荐)**
|
||||
|
||||
> ⚠️ npm 渠道更新滞后,安装的版本通常较旧,建议优先使用上方的 Native 方式。
|
||||
|
||||
```bash
|
||||
npm install -g @anthropic-ai/claude-code
|
||||
```
|
||||
|
||||
#### 验证安装
|
||||
|
||||
```bash
|
||||
claude -v
|
||||
```
|
||||
|
||||
#### 配置环境变量
|
||||
|
||||
**Ubuntu/Debian(Bash):**
|
||||
|
||||
```bash
|
||||
echo 'export ANTHROPIC_AUTH_TOKEN="sk-xxx"' >> ~/.bash_profile
|
||||
echo 'export ANTHROPIC_BASE_URL="https://api.oneinai.com"' >> ~/.bash_profile
|
||||
source ~/.bash_profile
|
||||
```
|
||||
|
||||
**Fedora/CentOS(Zsh):**
|
||||
|
||||
```bash
|
||||
echo 'export ANTHROPIC_AUTH_TOKEN="sk-xxx"' >> ~/.zshrc
|
||||
echo 'export ANTHROPIC_BASE_URL="https://api.oneinai.com"' >> ~/.zshrc
|
||||
source ~/.zshrc
|
||||
```
|
||||
|
||||
> 💡 请将 `sk-xxx` 替换为你在 oneinAI 平台获取的专属 API Key。
|
||||
|
||||
#### 启动 Claude Code
|
||||
|
||||
重启终端后,进入项目目录(或任意目录),输入 `claude` 即可启动使用。
|
||||
|
||||
---
|
||||
|
||||
## ❓ 常见问题
|
||||
|
||||
### 提示找不到 `claude` 命令?
|
||||
|
||||
1. 确认 Claude Code 已正确安装(重新执行安装命令)
|
||||
2. 检查 PATH 环境变量是否包含安装路径
|
||||
3. 重启终端窗口
|
||||
4. Windows 用户可尝试重新打开一个新的终端窗口
|
||||
|
||||
### 连接失败或报错 401?
|
||||
|
||||
1. 检查网络连接是否正常
|
||||
2. 确认 API Key 正确无误(注意前后不要有空格)
|
||||
3. 确认 `ANTHROPIC_BASE_URL` 设置为 `https://api.oneinai.com`
|
||||
4. 检查 oneinAI 平台账户余额是否充足
|
||||
|
||||
### 模型不可用或报错 404?
|
||||
|
||||
1. 确认所选模型在 oneinAI 平台上可用
|
||||
2. 查看 [模型选择指南](/guide/model-selection) 了解支持的模型列表
|
||||
3. 尝试切换到其他可用模型
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](/support/faq) 或联系 [售后支持](/support/after-sales)。
|
||||
393
apidoc/deploy/codex.md
Normal file
393
apidoc/deploy/codex.md
Normal file
@ -0,0 +1,393 @@
|
||||
# CodeX 部署指南
|
||||
|
||||
**企业级 AI 编码助手 - 完整部署手册**
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
官方文档| [developers.openai.com/codex](<https://developers.openai.com/codex/>)
|
||||
|
||||
📋 前置要求
|
||||
|
||||
请先完成 [Node.js 环境安装](</node/windows>) 和 [CC-Switch 工具安装](</tools/cc-switch>)。
|
||||
|
||||
## 🎯 快速导航
|
||||
|
||||
CodeX 是基于 GPT-5 架构的下一代智能编程助手,为开发者提供卓越的代码生成与优化能力。
|
||||
|
||||
**部署路径** :系统环境配置 ➜ CLI 工具安装 ➜ API 集成 ➜ 开发环境就绪
|
||||
|
||||
## 🚀 使用 CC-Switch 快速配置(推荐)
|
||||
|
||||
⚠️ 前置条件
|
||||
|
||||
使用 CC-Switch 配置 CodeX 之前,请确保已通过 npm 全局安装 CodeX 工具:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g @openai/codex@latest
|
||||
|
||||
1
|
||||
|
||||
验证安装:`codex --version`
|
||||
|
||||
推荐使用 [CC-Switch 快速配置工具](</tools/cc-switch>) 进行图形化配置,简单快捷无需命令行操作。
|
||||
|
||||
### 配置步骤
|
||||
|
||||
**1\. 启动 CC-Switch 并切换到 Codex 标签**
|
||||
|
||||
1. 打开 CC-Switch 应用程序
|
||||
2. 点击顶部的「Codex」标签页
|
||||
3. 点击右上角橙色「+」按钮添加新配置
|
||||
|
||||

|
||||
|
||||
**2\. 填写 CodeX 提供商配置**
|
||||
|
||||
1. **提供商名称** :自定义名称(如「IkunCoding」)
|
||||
2. **Base URL** :输入 `https://api.oneinai.com/v1`
|
||||
3. **API Key** :粘贴您从 IkunCode 平台获取的 CodeX 专用令牌(codex令牌组)
|
||||
4. **Model** :选择 `gpt-5.4`(书写文档时最新模型为 5.4)
|
||||
5. **其他配置** :根据需求调整推理强度、网络访问等参数
|
||||
6. 点击「保存」按钮
|
||||
|
||||

|
||||
|
||||
💡 提示
|
||||
|
||||
* CC-Switch 会自动创建 `~/.codex/config.toml` 和 `auth.json` 文件
|
||||
* 可以添加多个提供商配置,随时切换
|
||||
* 切换配置后,关闭并重启 CodeX 即可生效
|
||||
|
||||
**3\. 启用配置并使用**
|
||||
|
||||
1. 在配置列表中找到刚创建的「IkunCoding」配置
|
||||
2. 点击配置右侧的「当前使用」按钮
|
||||
3. 配置会被标记为「当前使用」状态(绿色标签)
|
||||
4. 重启 CodeX,新配置即可生效
|
||||
|
||||
**4\. 系统托盘快速切换**
|
||||
|
||||
CC-Switch 支持通过系统托盘快速切换 CodeX 配置:
|
||||
|
||||
* 右键点击系统托盘中的 CC-Switch 图标
|
||||
* 在菜单中选择 Codex 分类
|
||||
* 直接选择要切换到的配置
|
||||
* 配置立即生效,无需打开主界面
|
||||
|
||||
⚠️ 注意事项
|
||||
|
||||
* 务必从 IkunCode 平台创建「codex」令牌组的专用密钥
|
||||
* CodeX 令牌与 Claude Code 令牌不通用
|
||||
* 切换配置后需要重启 CodeX 才能生效
|
||||
* 可在 CC-Switch 中测试 API 端点速度
|
||||
|
||||
## ⌨️ 手动命令行配置
|
||||
|
||||
如果您不使用 CC-Switch,可以按照以下步骤手动配置 CodeX。
|
||||
|
||||
### 🖥️ Windows 平台
|
||||
|
||||
#### 第一步:部署 CodeX 命令行工具
|
||||
|
||||
以管理员权限启动命令提示符或 PowerShell,执行:
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
npm install -g @openai/codex@latest
|
||||
codex --version
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### 第二步:集成 IkunCoding API 服务
|
||||
|
||||
**获取专属 API 凭证** :
|
||||
|
||||
1. 访问 IkunCoding 开发者控制台
|
||||
2. 完成账户注册或执行登录操作
|
||||
3. 导航至「API 密钥管理」模块
|
||||
4. 创建新密钥时,务必选择「codex」令牌组
|
||||
5. 安全保存生成的 API Key
|
||||
|
||||
🔐 安全提醒
|
||||
|
||||
CodeX 要求使用独立的令牌组配置,与 Claude Code 令牌体系完全隔离。
|
||||
|
||||
**构建配置目录结构** :
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
mkdir %USERPROFILE%\\.codex
|
||||
cd %USERPROFILE%\\.codex
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**编写配置文件:config.toml**
|
||||
|
||||
toml
|
||||
|
||||
|
||||
model_provider = "IkunCoding"
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "xhigh"
|
||||
disable_response_storage = true
|
||||
approval_policy = "on-request"
|
||||
sandbox_mode = "danger-full-access"
|
||||
model_supports_reasoning_summaries = true
|
||||
|
||||
[model_providers.IkunCoding]
|
||||
name = "ikun"
|
||||
base_url = "https://api.oneinai.com/v1"
|
||||
wire_api = "responses"
|
||||
requires_openai_auth = true
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
|
||||
**编写认证文件:auth.json**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"OPENAI_API_KEY": "此处粘贴您的 CodeX 专用令牌"
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
#### 第三步:初始化工作空间
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
mkdir my-codex-project
|
||||
cd my-codex-project
|
||||
codex
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
### 🍏 macOS 平台
|
||||
|
||||
#### 部署 CodeX 工具
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g @openai/codex@latest
|
||||
codex --version
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### 集成 API 服务
|
||||
|
||||
**构建配置目录** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir -p ~/.codex
|
||||
cd ~/.codex
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**编写 config.toml 配置** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > config.toml << 'EOF'
|
||||
model_provider = "IkunCoding"
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "xhigh"
|
||||
disable_response_storage = true
|
||||
approval_policy = "on-request"
|
||||
sandbox_mode = "danger-full-access"
|
||||
model_supports_reasoning_summaries = true
|
||||
|
||||
[model_providers.IkunCoding]
|
||||
name = "ikun"
|
||||
base_url = "https://api.oneinai.com/v1"
|
||||
wire_api = "responses"
|
||||
requires_openai_auth = true
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
|
||||
**编写 auth.json 认证配置** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > auth.json << 'EOF'
|
||||
{
|
||||
"OPENAI_API_KEY": "此处粘贴您的 CodeX 专用令牌"
|
||||
}
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
#### 初始化工作空间
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir my-codex-project
|
||||
cd my-codex-project
|
||||
codex
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
### 🐧 Linux 平台
|
||||
|
||||
#### 部署 CodeX 工具
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo npm install -g @openai/codex@latest
|
||||
codex --version
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### 集成 API 服务
|
||||
|
||||
**构建配置目录** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir -p ~/.codex
|
||||
cd ~/.codex
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**编写 config.toml 配置** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > config.toml << 'EOF'
|
||||
model_provider = "IkunCoding"
|
||||
model = "gpt-5.4"
|
||||
model_reasoning_effort = "xhigh"
|
||||
disable_response_storage = true
|
||||
approval_policy = "on-request"
|
||||
sandbox_mode = "danger-full-access"
|
||||
model_supports_reasoning_summaries = true
|
||||
|
||||
[model_providers.IkunCoding]
|
||||
name = "ikun"
|
||||
base_url = "https://api.oneinai.com/v1"
|
||||
wire_api = "responses"
|
||||
requires_openai_auth = true
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
|
||||
**编写 auth.json 认证配置** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > auth.json << 'EOF'
|
||||
{
|
||||
"OPENAI_API_KEY": "此处粘贴您的 CodeX 专用令牌"
|
||||
}
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
#### 初始化工作空间
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir my-codex-project
|
||||
cd my-codex-project
|
||||
codex
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
## 常见问题
|
||||
|
||||
### CodeX 和 Claude Code 的令牌不通用?
|
||||
|
||||
是的,两者使用不同的令牌组:
|
||||
|
||||
* Claude Code: 使用 Claude Code 令牌组
|
||||
* CodeX: 使用 "codex" 令牌组
|
||||
|
||||
请在 IkunCode 平台创建对应的专用令牌。
|
||||
|
||||
### 配置文件放在哪里?
|
||||
|
||||
* Windows: `%USERPROFILE%\\.codex\\`
|
||||
* macOS/Linux: `~/.codex/`
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
347
apidoc/deploy/gemini-cli.md
Normal file
347
apidoc/deploy/gemini-cli.md
Normal file
@ -0,0 +1,347 @@
|
||||
# Gemini CLI 安装步骤
|
||||
|
||||
**Google AI 编程助手安装指南**
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
官方文档| [geminicli.com/docs](<https://geminicli.com/docs/>)
|
||||
|
||||
📋 前置要求
|
||||
|
||||
请先完成 [Node.js 环境安装](</node/windows>),确保 Node.js 18+ 已正确安装。
|
||||
|
||||
🚀 Gemini CLI 快速开始
|
||||
|
||||
Google AI 编程助手,Gemini 2.5 Pro 驱动
|
||||
|
||||
**1️⃣** 安装 CLI **2️⃣** 配置密钥 **3️⃣** 开始编码
|
||||
|
||||
## 🚀 使用 CC-Switch 快速配置(推荐)
|
||||
|
||||
⚠️ 前置条件
|
||||
|
||||
使用 CC-Switch 配置 Gemini CLI 之前,请确保已通过 npm 全局安装 Gemini CLI 工具:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
1
|
||||
|
||||
验证安装:`gemini --version`
|
||||
|
||||
推荐使用 [CC-Switch 快速配置工具](</tools/cc-switch>) 进行图形化配置,简单快捷无需手动创建配置文件。
|
||||
|
||||
### 配置步骤
|
||||
|
||||
**1\. 启动 CC-Switch 并切换到 Gemini 标签**
|
||||
|
||||
1. 打开 CC-Switch 应用程序
|
||||
2. 点击顶部的「Gemini」标签页
|
||||
3. 点击右上角橙色「+」按钮添加新配置
|
||||
|
||||

|
||||
|
||||
**2\. 填写 Gemini CLI 提供商配置**
|
||||
|
||||
1. **提供商名称** :自定义名称(如「ikuncode」)
|
||||
2. **Base URL** :输入 `https://api.oneinai.com`
|
||||
3. **API Key** :粘贴您从 IkunCode 平台获取的 Gemini 专用令牌
|
||||
4. **Model** :选择 `gemini-3-pro-preview` 或其他可用模型
|
||||
5. **安全设置** :根据需求调整(可选)
|
||||
6. 点击「保存」按钮
|
||||
|
||||

|
||||
|
||||
💡 提示
|
||||
|
||||
* CC-Switch 会自动创建 `~/.gemini/.env` 和 `settings.json` 文件
|
||||
* 可以添加多个提供商配置,随时切换
|
||||
* 切换配置后,关闭并重启 Gemini CLI 即可生效
|
||||
|
||||
**3\. 启用配置并使用**
|
||||
|
||||
1. 在配置列表中找到刚创建的「ikuncode」配置
|
||||
2. 点击配置右侧的「当前使用」按钮
|
||||
3. 配置会被标记为「当前使用」状态(绿色标签)
|
||||
4. 重启 Gemini CLI,新配置即可生效
|
||||
|
||||
**4\. 系统托盘快速切换**
|
||||
|
||||
CC-Switch 支持通过系统托盘快速切换 Gemini CLI 配置:
|
||||
|
||||
* 右键点击系统托盘中的 CC-Switch 图标
|
||||
* 在菜单中选择 Gemini 分类
|
||||
* 直接选择要切换到的配置
|
||||
* 配置立即生效,无需打开主界面
|
||||
|
||||
⚠️ 注意事项
|
||||
|
||||
* 确保从 IkunCode 平台创建 Gemini CLI 专用令牌
|
||||
* Gemini 令牌与 Claude Code/CodeX 令牌不通用
|
||||
* 切换配置后需要重启 Gemini CLI 才能生效
|
||||
* 可在 CC-Switch 中测试 API 端点速度
|
||||
|
||||
## ⌨️ 手动命令行配置
|
||||
|
||||
如果您不使用 CC-Switch,可以按照以下步骤手动安装和配置 Gemini CLI。
|
||||
|
||||
### 🖥️ Windows 安装流程教程
|
||||
|
||||
#### 1️⃣ 全局安装 Gemini CLI
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
1
|
||||
|
||||
#### 2️⃣ 配置 Gemini CLI
|
||||
|
||||
⚠️ 重要提示
|
||||
|
||||
请替换下方的 `GEMINI_API_KEY` 为你从 <https://ikuncode.cc> 获取的 Gemini CLI 专用 API 密钥!
|
||||
|
||||
**3.1 创建 gemini 文件夹**
|
||||
|
||||
在用户目录下:`%USERPROFILE%\\.gemini\\`
|
||||
|
||||
**3.2 创建 .env 文件**
|
||||
|
||||
在 `gemini` 文件夹新建 `.env` 文件:
|
||||
|
||||
env
|
||||
|
||||
|
||||
GOOGLE_GEMINI_BASE_URL=https://api.oneinai.com
|
||||
GEMINI_API_KEY=你的专属密钥请到https://ikuncode.cc获取
|
||||
GEMINI_MODEL=gemini-3-pro-preview
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
**3.3 创建 settings.json 文件**
|
||||
|
||||
在 `gemini` 文件夹新建 `settings.json` 文件:
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"ide": {
|
||||
"enabled": true
|
||||
},
|
||||
"security": {
|
||||
"auth": {
|
||||
"selectedType": "gemini-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
|
||||
#### 3️⃣ 启动 Gemini CLI
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
gemini
|
||||
|
||||
1
|
||||
|
||||
🎉 开始使用 Gemini CLI
|
||||
|
||||
• 输入上下文描述 "M kikasuna" • Agent Mode 自动编程模式 • Google Search 实时联网搜索
|
||||
|
||||
### 🍏 macOS 安装流程教程
|
||||
|
||||
#### 1️⃣ 全局安装 Gemini CLI
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g @google/gemini-cli
|
||||
|
||||
1
|
||||
|
||||
#### 2️⃣ 配置 Gemini CLI
|
||||
|
||||
**3.1 创建配置目录** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir -p ~/.gemini
|
||||
cd ~/.gemini
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**3.2 创建 .env 文件** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > .env << 'EOF'
|
||||
GOOGLE_GEMINI_BASE_URL=https://api.oneinai.com
|
||||
GEMINI_API_KEY=你的专属密钥请到https://ikuncode.cc获取
|
||||
GEMINI_MODEL=gemini-3-pro-preview
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
**3.3 创建 settings.json 文件** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > settings.json << 'EOF'
|
||||
{
|
||||
"ide": {
|
||||
"enabled": true
|
||||
},
|
||||
"security": {
|
||||
"auth": {
|
||||
"selectedType": "gemini-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
|
||||
#### 3️⃣ 启动 Gemini CLI
|
||||
|
||||
bash
|
||||
|
||||
|
||||
gemini
|
||||
|
||||
1
|
||||
|
||||
### 🐧 Linux 安装流程教程
|
||||
|
||||
#### 1️⃣ 全局安装 Gemini CLI
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo npm install -g @google/gemini-cli
|
||||
|
||||
1
|
||||
|
||||
#### 2️⃣ 配置 Gemini CLI
|
||||
|
||||
**3.1 创建配置目录** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir -p ~/.gemini
|
||||
cd ~/.gemini
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**3.2 创建 .env 文件** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > .env << 'EOF'
|
||||
GOOGLE_GEMINI_BASE_URL=https://api.oneinai.com
|
||||
GEMINI_API_KEY=你的专属密钥请到https://ikuncode.cc获取
|
||||
GEMINI_MODEL=gemini-3-pro-preview
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
**3.3 创建 settings.json 文件** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cat > settings.json << 'EOF'
|
||||
{
|
||||
"ide": {
|
||||
"enabled": true
|
||||
},
|
||||
"security": {
|
||||
"auth": {
|
||||
"selectedType": "gemini-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
EOF
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
|
||||
#### 3️⃣ 启动 Gemini CLI
|
||||
|
||||
bash
|
||||
|
||||
|
||||
gemini
|
||||
|
||||
1
|
||||
|
||||
🎉 部署完成!
|
||||
|
||||
现在您可以使用 Gemini CLI 进行 AI 辅助编程了。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### API Key 在哪里获取?
|
||||
|
||||
登录 [IkunCode 平台](<https://api.oneinai.com>),创建 Gemini CLI 专用令牌。
|
||||
|
||||
### 配置文件位置
|
||||
|
||||
* Windows: `%USERPROFILE%\\.gemini\\`
|
||||
* macOS/Linux: `~/.gemini/`
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
437
apidoc/deploy/nano-banana.md
Normal file
437
apidoc/deploy/nano-banana.md
Normal file
@ -0,0 +1,437 @@
|
||||
#  NanoBanana 图像生成部署指南
|
||||
|
||||
**通过 OneinAI 调用 Gemini 原生图像生成 API**
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
OneinAI 平台| [api.ikuncode.cc](<https://api.oneinai.com>)
|
||||
|
||||
📋 简介
|
||||
|
||||
NanoBanana 是 OneinAI 提供的 Gemini 图像生成模型系列。通过 OneinAI 的 API Key 即可直接调用,无需科学上网,无需谷歌账号。
|
||||
|
||||
## 🎯 模型介绍
|
||||
|
||||
OneinAI 提供两个 NanoBanana 模型:
|
||||
|
||||
模型| 模型 ID| 特点| 适用场景
|
||||
---|---|---|---
|
||||
**NanoBananaPro**| `gemini-3-pro-image-preview`| 效果最佳,支持高清输出| 高质量海报、商业素材、精细创作
|
||||
**NanoBanana2**| `gemini-3.1-flash-image-preview`| 速度快、价格低| 快速预览、批量生成、日常使用
|
||||
|
||||
💡 如何选择
|
||||
|
||||
* 追求**画质** :选 NanoBananaPro(Pro 版)
|
||||
* 追求**速度和性价比** :选 NanoBanana2(Flash 版)
|
||||
|
||||
## 📐 支持的宽高比
|
||||
|
||||
两个模型均支持以下 **10 种宽高比** :
|
||||
|
||||
宽高比| 说明| 宽高比| 说明
|
||||
---|---|---|---
|
||||
**1:1**| 正方形图片| **3:2**| 相机常用比例(横)
|
||||
**16:9**| 横屏标准比例| **2:3**| 相机常用比例(竖)
|
||||
**9:16**| 竖屏标准比例| **21:9**| 超宽屏比例
|
||||
**4:3**| 传统横屏比例| **5:4**| 显示器比例(横)
|
||||
**3:4**| 传统竖屏比例| **4:5**| 显示器比例(竖)
|
||||
|
||||
## 📏 支持的分辨率
|
||||
|
||||
每种宽高比支持三种分辨率等级:
|
||||
|
||||
### 1K 分辨率(快速预览)
|
||||
|
||||
宽高比| 分辨率| 宽高比| 分辨率
|
||||
---|---|---|---
|
||||
1:1| 1024×1024| 3:2| 1232×816
|
||||
16:9| 1376×768| 2:3| 816×1232
|
||||
9:16| 768×1376| 21:9| 1584×672
|
||||
4:3| 1200×896| 5:4| 1136×896
|
||||
3:4| 896×1200| 4:5| 896×1136
|
||||
|
||||
### 2K 分辨率(推荐使用)
|
||||
|
||||
宽高比| 分辨率| 宽高比| 分辨率
|
||||
---|---|---|---
|
||||
1:1| 2048×2048| 3:2| 2464×1632
|
||||
16:9| 2752×1536| 2:3| 1632×2464
|
||||
9:16| 1536×2752| 21:9| 3168×1344
|
||||
4:3| 2400×1792| 5:4| 2272×1792
|
||||
3:4| 1792×2400| 4:5| 1792×2272
|
||||
|
||||
### 4K 分辨率(超高清)
|
||||
|
||||
宽高比| 分辨率| 宽高比| 分辨率
|
||||
---|---|---|---
|
||||
1:1| 4096×4096| 3:2| 4928×3264
|
||||
16:9| 5504×3072| 2:3| 3264×4928
|
||||
9:16| 3072×5504| 21:9| 6336×2688
|
||||
4:3| 4800×3584| 5:4| 4544×3584
|
||||
3:4| 3584×4800| 4:5| 3584×4544
|
||||
|
||||
## 🔧 API 请求格式
|
||||
|
||||
NanoBanana 使用**谷歌原生格式** API,与 OpenAI 格式不同。
|
||||
|
||||
### 基本请求结构
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"contents": [{
|
||||
"parts": [
|
||||
{ "text": "您的图片描述" }
|
||||
]
|
||||
}],
|
||||
"generationConfig": {
|
||||
"responseModalities": ["IMAGE"],
|
||||
"imageConfig": {
|
||||
"aspectRatio": "16:9",
|
||||
"image_size": "2K"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
|
||||
### 参数说明
|
||||
|
||||
参数| 说明| 可选值
|
||||
---|---|---
|
||||
`responseModalities`| 响应类型,必须设为图片| `["IMAGE"]`
|
||||
`aspectRatio`| 宽高比| `1:1`、`16:9`、`9:16`、`4:3`、`3:4`、`3:2`、`2:3`、`21:9`、`5:4`、`4:5`
|
||||
`image_size`| 分辨率等级| `1K`、`2K`、`4K`
|
||||
|
||||
### API 端点
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1beta/models/{模型ID}:generateContent
|
||||
|
||||
1
|
||||
|
||||
* NanoBananaPro:`gemini-3-pro-image-preview`
|
||||
* NanoBanana2:`gemini-3.1-flash-image-preview`
|
||||
|
||||
## 📝 示例代码
|
||||
|
||||
### cURL 示例
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -X POST "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent" \\
|
||||
-H "Authorization: Bearer sk-你的OneinAI密钥" \\
|
||||
-H "Content-Type: application/json" \\
|
||||
-d '{
|
||||
"contents": [{
|
||||
"parts": [
|
||||
{"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"}
|
||||
]
|
||||
}],
|
||||
"generationConfig": {
|
||||
"responseModalities": ["IMAGE"],
|
||||
"imageConfig": {
|
||||
"aspectRatio": "16:9",
|
||||
"image_size": "2K"
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
|
||||
### Python 示例
|
||||
|
||||
python
|
||||
|
||||
|
||||
import requests
|
||||
import base64
|
||||
|
||||
API_KEY = "sk-你的OneinAI密钥"
|
||||
API_URL = "https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent"
|
||||
|
||||
payload = {
|
||||
"contents": [{
|
||||
"parts": [
|
||||
{"text": "一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富"}
|
||||
]
|
||||
}],
|
||||
"generationConfig": {
|
||||
"responseModalities": ["IMAGE"],
|
||||
"imageConfig": {
|
||||
"aspectRatio": "16:9",
|
||||
"image_size": "2K"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
headers = {
|
||||
"Authorization": f"Bearer {API_KEY}",
|
||||
"Content-Type": "application/json"
|
||||
}
|
||||
|
||||
response = requests.post(API_URL, headers=headers, json=payload, timeout=600)
|
||||
|
||||
if response.status_code == 200:
|
||||
data = response.json()
|
||||
image_base64 = data["candidates"][0]["content"]["parts"][0]["inlineData"]["data"]
|
||||
|
||||
# 保存图片
|
||||
with open("output.png", "wb") as f:
|
||||
f.write(base64.b64decode(image_base64))
|
||||
print("图片已保存为 output.png")
|
||||
else:
|
||||
print(f"请求失败: {response.status_code}")
|
||||
print(response.text)
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
|
||||
### Node.js 示例
|
||||
|
||||
javascript
|
||||
|
||||
|
||||
const fs = require('fs');
|
||||
|
||||
const API_KEY = 'sk-你的OneinAI密钥';
|
||||
const API_URL = 'https://api.oneinai.com/v1beta/models/gemini-3-pro-image-preview:generateContent';
|
||||
|
||||
async function generateImage() {
|
||||
const response = await fetch(API_URL, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Authorization': \`Bearer \${API_KEY}\`,
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
body: JSON.stringify({
|
||||
contents: [{
|
||||
parts: [
|
||||
{ text: '一只可爱的小猫咪坐在花园里,油画风格,高清,细节丰富' }
|
||||
]
|
||||
}],
|
||||
generationConfig: {
|
||||
responseModalities: ['IMAGE'],
|
||||
imageConfig: {
|
||||
aspectRatio: '16:9',
|
||||
image_size: '2K'
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
const data = await response.json();
|
||||
const imageBase64 = data.candidates[0].content.parts[0].inlineData.data;
|
||||
|
||||
fs.writeFileSync('output.png', Buffer.from(imageBase64, 'base64'));
|
||||
console.log('图片已保存为 output.png');
|
||||
}
|
||||
|
||||
generateImage().catch(console.error);
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
|
||||
## 🖼️ 图生图编辑
|
||||
|
||||
NanoBananaPro 还支持**图生图** 功能,上传一张图片并描述编辑指令,即可对图片进行修改。
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"contents": [{
|
||||
"parts": [
|
||||
{
|
||||
"inlineData": {
|
||||
"mimeType": "image/png",
|
||||
"data": "图片的Base64编码字符串"
|
||||
}
|
||||
},
|
||||
{ "text": "将背景改为星空,保持人物不变" }
|
||||
]
|
||||
}],
|
||||
"generationConfig": {
|
||||
"responseModalities": ["IMAGE"],
|
||||
"imageConfig": {
|
||||
"aspectRatio": "16:9",
|
||||
"image_size": "2K"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
|
||||
💡 图生图使用技巧
|
||||
|
||||
* 编辑指令要**具体明确** ,说清楚保留什么、修改什么
|
||||
* 支持换背景、改风格、加元素、去水印等操作
|
||||
* 图片需要转为 Base64 编码后放入 `inlineData.data` 字段
|
||||
|
||||
## 🤖 在 Claude Code 中使用
|
||||
|
||||
如果您已安装 [ikunimage Skill](</skills/ikunimage>),可以在 Claude Code 对话中直接使用自然语言生成图片,无需手动调用 API。
|
||||
|
||||
|
||||
> 用 ikun 画一张赛博朋克风格的城市夜景,16:9 比例,2K 分辨率
|
||||
|
||||
> ikun 生成一张水墨风格的山水画,竖屏 9:16
|
||||
|
||||
> 用 ikun 编辑这张图片 /path/to/image.png,把背景换成海边日落
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
详细安装和使用说明请参考:[ikunimage AI 生图](</skills/ikunimage>)
|
||||
|
||||
## ⏱️ 性能建议
|
||||
|
||||
### 推荐超时时间
|
||||
|
||||
不同分辨率的处理时间差异较大,建议设置合理的超时:
|
||||
|
||||
分辨率| 推荐超时| 适用场景
|
||||
---|---|---
|
||||
**1K**| 360 秒(6 分钟)| 快速预览、测试效果
|
||||
**2K**| 600 秒(10 分钟)| 日常使用(推荐)
|
||||
**4K**| 1200 秒(20 分钟)| 超高清输出、商业用途
|
||||
|
||||
### 带宽注意
|
||||
|
||||
图片数据使用 Base64 编码传输,数据量较大:
|
||||
|
||||
* 建议使用**稳定高速的网络连接**
|
||||
* 4K 图片的 Base64 数据可能超过 **10MB**
|
||||
* 避免在网络高峰时段生成 4K 图片
|
||||
|
||||
## ⚠️ 注意事项
|
||||
|
||||
1. **API Key** :需从 [OneinAI 平台](<https://api.oneinai.com>) 创建支持图像模型的令牌
|
||||
2. **API 格式** :NanoBanana 使用**谷歌原生格式** ,不是 OpenAI 兼容格式,请注意区分
|
||||
3. **分辨率与耗时** :分辨率越高,生成时间越长,请根据实际需求选择
|
||||
4. **文字渲染** :支持在图片中渲染中文文字(如招牌、海报文案),在 prompt 中直接写明即可
|
||||
5. **价格差异** :不同模型和分辨率价格不同,详见 OneinAI 平台定价页面
|
||||
554
apidoc/guide/api-reference.md
Normal file
554
apidoc/guide/api-reference.md
Normal file
@ -0,0 +1,554 @@
|
||||
# AI 模型接口文档
|
||||
|
||||
IkunCode API 兼容 OpenAI 接口协议,一个 Key 即可调用 Claude、GPT、Gemini、DeepSeek 等主流模型。
|
||||
|
||||
## 接口基础信息
|
||||
|
||||
项目| 说明
|
||||
---|---
|
||||
**Base URL**| `https://api.oneinai.com/v1`
|
||||
**认证方式**| Bearer Token
|
||||
**协议兼容**| OpenAI API 格式
|
||||
|
||||
所有请求均需在 Header 中携带认证信息:
|
||||
|
||||
|
||||
Authorization: Bearer sk-你的API Key
|
||||
Content-Type: application/json
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
## 模型列表
|
||||
|
||||
获取当前可用的模型列表。
|
||||
|
||||
**请求**
|
||||
|
||||
|
||||
GET https://api.oneinai.com/v1/models
|
||||
|
||||
1
|
||||
|
||||
**示例**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl https://api.oneinai.com/v1/models \\
|
||||
-H "Authorization: Bearer sk-xxxx"
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**响应**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"object": "list",
|
||||
"data": [
|
||||
{
|
||||
"id": "claude-sonnet-4-20250514",
|
||||
"object": "model",
|
||||
"created": 1700000000,
|
||||
"owned_by": "anthropic"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
|
||||
## 聊天完成
|
||||
|
||||
对话补全接口,最常用的 AI 对话接口。
|
||||
|
||||
**请求**
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1/chat/completions
|
||||
|
||||
1
|
||||
|
||||
**请求参数**
|
||||
|
||||
参数| 类型| 必填| 默认值| 说明
|
||||
---|---|---|---|---
|
||||
model| string| 是| -| 模型名称,如 `claude-sonnet-4-20250514`
|
||||
messages| array| 是| -| 对话消息列表
|
||||
temperature| number| 否| 1.0| 采样温度,0~2,越低越确定
|
||||
top_p| number| 否| 1.0| 核采样参数,0~1
|
||||
max_tokens| integer| 否| 4096| 最大生成 token 数
|
||||
stream| boolean| 否| false| 是否启用流式输出
|
||||
presence_penalty| number| 否| 0| 存在惩罚,-2.0~2.0
|
||||
frequency_penalty| number| 否| 0| 频率惩罚,-2.0~2.0
|
||||
stop| array/string| 否| null| 停止序列
|
||||
tools| array| 否| null| 工具/函数调用定义
|
||||
tool_choice| string/object| 否| "auto"| 工具选择策略
|
||||
|
||||
**messages 结构**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"role": "system" | "user" | "assistant" | "tool",
|
||||
"content": "消息内容"
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
支持的 role 类型:
|
||||
|
||||
* **system** :系统提示,设定 AI 角色和行为
|
||||
* **user** :用户输入
|
||||
* **assistant** :模型回复(多轮对话上下文)
|
||||
* **tool** :工具调用返回结果
|
||||
|
||||
**示例请求(cURL)**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -X POST "https://api.oneinai.com/v1/chat/completions" \\
|
||||
-H "Content-Type: application/json" \\
|
||||
-H "Authorization: Bearer sk-xxxx" \\
|
||||
-d '{
|
||||
"model": "claude-sonnet-4-20250514",
|
||||
"messages": [
|
||||
{
|
||||
"role": "system",
|
||||
"content": "你是一个有帮助的AI助手。"
|
||||
},
|
||||
{
|
||||
"role": "user",
|
||||
"content": "你好,请介绍一下自己。"
|
||||
}
|
||||
],
|
||||
"temperature": 0.7,
|
||||
"max_tokens": 1024,
|
||||
"stream": false
|
||||
}'
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
|
||||
**示例请求(Python)**
|
||||
|
||||
python
|
||||
|
||||
|
||||
from openai import OpenAI
|
||||
|
||||
client = OpenAI(
|
||||
api_key="sk-xxxx",
|
||||
base_url="https://api.oneinai.com/v1"
|
||||
)
|
||||
|
||||
response = client.chat.completions.create(
|
||||
model="claude-sonnet-4-20250514",
|
||||
messages=[
|
||||
{"role": "system", "content": "你是一个有帮助的AI助手。"},
|
||||
{"role": "user", "content": "你好,请介绍一下自己。"}
|
||||
],
|
||||
temperature=0.7,
|
||||
max_tokens=1024
|
||||
)
|
||||
|
||||
print(response.choices[0].message.content)
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
|
||||
**示例请求(Node.js)**
|
||||
|
||||
javascript
|
||||
|
||||
|
||||
import OpenAI from 'openai';
|
||||
|
||||
const client = new OpenAI({
|
||||
apiKey: 'sk-xxxx',
|
||||
baseURL: 'https://api.oneinai.com/v1',
|
||||
});
|
||||
|
||||
const response = await client.chat.completions.create({
|
||||
model: 'claude-sonnet-4-20250514',
|
||||
messages: [
|
||||
{ role: 'system', content: '你是一个有帮助的AI助手。' },
|
||||
{ role: 'user', content: '你好,请介绍一下自己。' },
|
||||
],
|
||||
temperature: 0.7,
|
||||
max_tokens: 1024,
|
||||
});
|
||||
|
||||
console.log(response.choices[0].message.content);
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
|
||||
**响应格式(非流式)**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"id": "chatcmpl-abc123",
|
||||
"object": "chat.completion",
|
||||
"created": 1677858242,
|
||||
"model": "claude-sonnet-4-20250514",
|
||||
"choices": [
|
||||
{
|
||||
"index": 0,
|
||||
"message": {
|
||||
"role": "assistant",
|
||||
"content": "你好!我是一个AI助手,很高兴为你服务。"
|
||||
},
|
||||
"finish_reason": "stop"
|
||||
}
|
||||
],
|
||||
"usage": {
|
||||
"prompt_tokens": 28,
|
||||
"completion_tokens": 18,
|
||||
"total_tokens": 46
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
|
||||
**流式响应(stream=true)**
|
||||
|
||||
采用 Server-Sent Events (SSE) 格式,每行以 `data: ` 开头,最后以 `data: [DONE]` 结束。
|
||||
|
||||
json
|
||||
|
||||
|
||||
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1690000000,"model":"claude-sonnet-4-20250514","choices":[{"index":0,"delta":{"role":"assistant","content":"你"},"finish_reason":null}]}
|
||||
|
||||
data: {"id":"chatcmpl-123","object":"chat.completion.chunk","created":1690000000,"model":"claude-sonnet-4-20250514","choices":[{"index":0,"delta":{"content":"好"},"finish_reason":null}]}
|
||||
|
||||
data: [DONE]
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
## 文本嵌入
|
||||
|
||||
文本嵌入向量生成接口,用于语义搜索、文本相似度计算等场景。
|
||||
|
||||
**请求**
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1/embeddings
|
||||
|
||||
1
|
||||
|
||||
**请求参数**
|
||||
|
||||
参数| 类型| 必填| 说明
|
||||
---|---|---|---
|
||||
model| string| 是| 嵌入模型名称
|
||||
input| string/array| 是| 待嵌入的文本或文本数组
|
||||
encoding_format| string| 否| 返回格式,`float` 或 `base64`
|
||||
|
||||
**示例**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -X POST "https://api.oneinai.com/v1/embeddings" \\
|
||||
-H "Content-Type: application/json" \\
|
||||
-H "Authorization: Bearer sk-xxxx" \\
|
||||
-d '{
|
||||
"model": "text-embedding-3-small",
|
||||
"input": "你好世界"
|
||||
}'
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
|
||||
**响应**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"object": "list",
|
||||
"data": [
|
||||
{
|
||||
"object": "embedding",
|
||||
"index": 0,
|
||||
"embedding": [0.0023, -0.0094, 0.0156, ...]
|
||||
}
|
||||
],
|
||||
"model": "text-embedding-3-small",
|
||||
"usage": {
|
||||
"prompt_tokens": 4,
|
||||
"total_tokens": 4
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
|
||||
## 图像生成
|
||||
|
||||
AI 图像生成接口。
|
||||
|
||||
**请求**
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1/images/generations
|
||||
|
||||
1
|
||||
|
||||
**请求参数**
|
||||
|
||||
参数| 类型| 必填| 说明
|
||||
---|---|---|---
|
||||
model| string| 是| 图像模型名称
|
||||
prompt| string| 是| 图像描述文本
|
||||
n| integer| 否| 生成图片数量,默认 1
|
||||
size| string| 否| 图片尺寸,如 `1024x1024`
|
||||
response_format| string| 否| 返回格式,`url` 或 `b64_json`
|
||||
|
||||
**示例**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -X POST "https://api.oneinai.com/v1/images/generations" \\
|
||||
-H "Content-Type: application/json" \\
|
||||
-H "Authorization: Bearer sk-xxxx" \\
|
||||
-d '{
|
||||
"model": "dall-e-3",
|
||||
"prompt": "一只可爱的猫咪坐在窗台上看雪景",
|
||||
"n": 1,
|
||||
"size": "1024x1024"
|
||||
}'
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
|
||||
**响应**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"created": 1700000000,
|
||||
"data": [
|
||||
{
|
||||
"url": "https://...",
|
||||
"revised_prompt": "..."
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
|
||||
## 语音接口
|
||||
|
||||
### 语音转文字 (STT)
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1/audio/transcriptions
|
||||
|
||||
1
|
||||
|
||||
### 文字转语音 (TTS)
|
||||
|
||||
|
||||
POST https://api.oneinai.com/v1/audio/speech
|
||||
|
||||
1
|
||||
|
||||
**TTS 示例**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -X POST "https://api.oneinai.com/v1/audio/speech" \\
|
||||
-H "Content-Type: application/json" \\
|
||||
-H "Authorization: Bearer sk-xxxx" \\
|
||||
-d '{
|
||||
"model": "tts-1",
|
||||
"input": "你好,欢迎使用 IkunCode。",
|
||||
"voice": "alloy"
|
||||
}' \\
|
||||
--output speech.mp3
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
|
||||
## 错误码参考
|
||||
|
||||
状态码| 错误类型| 说明
|
||||
---|---|---
|
||||
400| invalid_request_error| 请求参数错误
|
||||
401| authentication_error| API Key 无效或过期
|
||||
403| permission_error| 无权访问该模型
|
||||
429| rate_limit_exceeded| 超过速率限制或余额不足
|
||||
500| internal_server_error| 服务端异常,请稍后重试
|
||||
502/504| gateway_error| 网关超时
|
||||
|
||||
**错误响应格式**
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"error": {
|
||||
"message": "错误详细信息",
|
||||
"type": "invalid_request_error",
|
||||
"code": "invalid_api_key"
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
|
||||
## 使用建议
|
||||
|
||||
💡 最佳实践
|
||||
|
||||
* **system 提示** 尽量精简明确,避免过长
|
||||
* **多轮对话** 时完整保留上下文历史
|
||||
* 生产环境始终设置合理的 `max_tokens` 和 `temperature`
|
||||
* 推荐使用官方 SDK(Python `openai`、Node.js `openai`)简化开发
|
||||
* 不同模型的上下文长度和能力差异较大,请根据需求选择
|
||||
|
||||
⚠️ 注意
|
||||
|
||||
请将示例中的 `sk-xxxx` 替换为你的真实 API Key。请勿将 Key 提交到公开代码仓库。
|
||||
45
apidoc/guide/create-key.md
Normal file
45
apidoc/guide/create-key.md
Normal file
@ -0,0 +1,45 @@
|
||||
# 创建专属 Key
|
||||
|
||||
注册登录后,点击创建专属 Key。
|
||||
|
||||
## 创建步骤
|
||||
|
||||
1. 登录 OneinAI 平台
|
||||
2. 访问"[令牌管理](<https://api.oneinai.com/console/token>)"
|
||||
3. 点击"添加令牌"按钮
|
||||
4. 创建需要使用的令牌,不要选择用户分组,请根据[监测站](<https://status.ikuncode.cc/>)的模型状态和令牌说明、倍率综合选择适合您的分组。
|
||||
5. 保存并复制 Key
|
||||
|
||||
💡 小提示
|
||||
|
||||
**模型限制列表** 留空即可,不需要配置。除非您看懂了它的作用。
|
||||
|
||||
## 安全建议
|
||||
|
||||
🔐 安全提醒
|
||||
|
||||
* **不要** 将 Key 分享给他人
|
||||
* **不要** 将 Key 提交到代码仓库
|
||||
* **不要** 在公开场合展示 Key
|
||||
* 询问配置是否正确时,给Key打码
|
||||
* 使用环境变量或配置文件存储 Key
|
||||
* 定期更换 Key 提高安全性
|
||||
|
||||
## 保存 Key
|
||||
|
||||
创建成功后,请立即保存好您的 Key:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 示例 Key(请替换为您的实际 Key)
|
||||
sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
## 下一步
|
||||
|
||||
* [修改令牌设置](</guide/modify-token>) \- 调整令牌参数
|
||||
* [配置环境变量](</deploy/claude-code#配置环境变量>) \- 在工具中使用 Key
|
||||
* [充值](</guide/recharge>) \- 确保账户有足够余额
|
||||
35
apidoc/guide/model-selection.md
Normal file
35
apidoc/guide/model-selection.md
Normal file
@ -0,0 +1,35 @@
|
||||
# 🎯 模型选择
|
||||
|
||||
不同的分组拥有不同的模型可用列表(**C1、C2、C3 用户分组除外** )。在使用前,请先确认您当前所属分组下的可用模型。
|
||||
|
||||
## 如何查看可用模型
|
||||
|
||||
请直接访问 **[模型广场](<https://api.oneinai.com/pricing>)** ,筛选对应分组下的可用模型。
|
||||
|
||||
💡 操作步骤
|
||||
|
||||
1. 打开 [模型广场](<https://api.oneinai.com/pricing>)
|
||||
2. 在筛选条件中选择您的令牌所属分组
|
||||
3. 查看该分组下所有可用的模型列表
|
||||
4. 在工具中配置时,请使用列表中存在的模型名称
|
||||
|
||||
## 重要提示
|
||||
|
||||
⚠️ 注意事项
|
||||
|
||||
* **请不要自定义创造新的模型名称** ,例如自行拼接、修改模型名等行为都会导致请求失败。
|
||||
* **请不要选择不在可用范围内的模型** ,否则将无法正常调用。
|
||||
* C1、C2、C3是用户等级分组,不是模型分组。创建令牌时请勿使用。
|
||||
|
||||
## 常见问题
|
||||
|
||||
如果您在使用过程中遇到 **「模型不存在」** 或 **「无权限访问该模型」** 等错误,请:
|
||||
|
||||
1. 前往[模型广场](<https://api.oneinai.com/pricing>)核对您分组下的可用模型;
|
||||
2. 检查工具中配置的模型名称是否拼写正确;
|
||||
3. 确认当前令牌所属的分组是否支持该模型。
|
||||
|
||||
## 下一步
|
||||
|
||||
* [充值](</guide/recharge>) \- 为账户充值
|
||||
* [开始部署](</deploy/claude-code>) \- 配置 AI 编程工具
|
||||
71
apidoc/guide/modify-token.md
Normal file
71
apidoc/guide/modify-token.md
Normal file
@ -0,0 +1,71 @@
|
||||
# 修改令牌设置
|
||||
|
||||
创建 Key 后,您可以根据需要修改令牌的各项设置。
|
||||
|
||||

|
||||
|
||||
## 可修改的设置
|
||||
|
||||
### 令牌名称
|
||||
|
||||
修改令牌的显示名称,便于区分和管理。
|
||||
|
||||
### 配额限制
|
||||
|
||||
调整令牌的使用额度:
|
||||
|
||||
* 无限额度
|
||||
* 设置每日/每月限额
|
||||
* 设置总额度
|
||||
|
||||
### 速率限制
|
||||
|
||||
控制请求频率:
|
||||
|
||||
* 每分钟请求数
|
||||
* 每小时请求数
|
||||
* 并发请求数
|
||||
|
||||
### 启用/禁用
|
||||
|
||||
临时禁用令牌而不删除,方便后续再次使用。
|
||||
|
||||
## 修改步骤
|
||||
|
||||
1. 登录控制台
|
||||
2. 找到要修改的令牌
|
||||
3. 点击"编辑"按钮
|
||||
4. 修改相关设置
|
||||
5. 保存更改
|
||||
|
||||
## 重要提示
|
||||
|
||||
⚠️ 注意
|
||||
|
||||
* 修改设置后立即生效
|
||||
* 某些设置可能需要重启工具才能应用
|
||||
* 修改令牌组需要重新创建 Key
|
||||
|
||||
## 保留好 Key 备用
|
||||
|
||||
修改设置后,请确保保存好您的 Key,后续配置环境变量需要使用。
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# Windows PowerShell
|
||||
$env:ANTHROPIC_AUTH_TOKEN="您的Key"
|
||||
|
||||
# macOS/Linux
|
||||
export ANTHROPIC_AUTH_TOKEN="您的Key"
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
## 下一步
|
||||
|
||||
* [充值](</guide/recharge>) \- 为账户充值
|
||||
* [开始部署](</deploy/claude-code>) \- 配置 AI 编程工具
|
||||
100
apidoc/guide/recharge.md
Normal file
100
apidoc/guide/recharge.md
Normal file
@ -0,0 +1,100 @@
|
||||
# 充值
|
||||
|
||||
目前支持站内支付宝、微信充值。
|
||||
|
||||
🧾 需要开票?
|
||||
|
||||
如需开具发票,请**不要** 通过网站直接充值,进群联系管理员处理。
|
||||
|
||||
## 充值方式
|
||||
|
||||
### 在线充值
|
||||
|
||||
1. 登录 OneinAI 平台
|
||||
2. 进入"充值"页面
|
||||
3. 选择充值金额
|
||||
4. 选择支付方式:
|
||||
* 支付宝
|
||||
* 微信支付
|
||||
5. 完成支付
|
||||
|
||||
### 充值金额
|
||||
|
||||
可以选择:
|
||||
|
||||
* 预设金额(如 10元、50元、100元)
|
||||
* 自定义金额
|
||||
|
||||
## 充值到账时间
|
||||
|
||||
* 支付宝:即时到账
|
||||
* 微信支付:即时到账
|
||||
|
||||
如果超过 5 分钟未到账,请联系客服。
|
||||
|
||||
## 发票服务
|
||||
|
||||
⚠️ 注意
|
||||
|
||||
如需大额开票,请联系群主充值。
|
||||
|
||||
### 开票条件
|
||||
|
||||
* 累计充值满 500 元可提交开发票需求
|
||||
* 支持普票、专票
|
||||
|
||||
### 申请流程
|
||||
|
||||
1. 联系客服或群主
|
||||
2. 提供开票信息
|
||||
3. 确认充值金额
|
||||
4. 完成充值后开具发票
|
||||
|
||||
## 消费记录
|
||||
|
||||
您可以在控制台查看:
|
||||
|
||||
* 充值记录
|
||||
* 消费明细
|
||||
* 当前余额
|
||||
* 账单详情
|
||||
|
||||
## 退款政策
|
||||
|
||||
💡 说明
|
||||
|
||||
* 未使用的余额可以申请退款
|
||||
* 已使用的部分不支持退款
|
||||
* 退款需要扣除手续费
|
||||
* 具体政策请咨询客服
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 充值失败怎么办?
|
||||
|
||||
1. 检查网络连接
|
||||
2. 确认支付方式是否可用
|
||||
3. 联系客服处理
|
||||
|
||||
### 余额不足提示
|
||||
|
||||
如果使用过程中提示余额不足,请及时充值以继续使用服务。
|
||||
|
||||
### 大额充值
|
||||
|
||||
如需大额充值(如企业用户),建议:
|
||||
|
||||
* 联系群主或客服
|
||||
* 可能享受优惠价格
|
||||
* 支持开具发票
|
||||
|
||||
## 联系方式
|
||||
|
||||
如有充值相关问题,请查看[售前售后](</support/after-sales>)页面获取联系方式。
|
||||
|
||||
## 下一步
|
||||
|
||||
充值完成后,您可以:
|
||||
|
||||
* [开始部署工具](</deploy/claude-code>)
|
||||
* [查看常见问题](</support/faq>)
|
||||
59
apidoc/guide/registration.md
Normal file
59
apidoc/guide/registration.md
Normal file
@ -0,0 +1,59 @@
|
||||
# 注册账号
|
||||
|
||||
访问我们的官网 <https://api.oneinai.com/>,可自行选择账号名注册,也可选择支持的一些其他站点快捷注册。
|
||||
|
||||
## 注册步骤
|
||||
|
||||
1. 打开官网链接
|
||||
2. 点击"注册"按钮
|
||||
3. 选择注册方式:
|
||||
* 使用邮箱注册
|
||||
* 使用第三方账号快捷注册
|
||||
|
||||

|
||||
|
||||
## 注册方式
|
||||
|
||||
### 邮箱注册
|
||||
|
||||
* 填写邮箱地址
|
||||
* 设置密码
|
||||
* 接收验证邮件
|
||||
* 完成注册
|
||||
|
||||
### 快捷注册
|
||||
|
||||
支持使用以下方式快速注册:
|
||||
|
||||
* LinuxDo
|
||||
|
||||
💡 提示
|
||||
|
||||
推荐使用邮箱注册,方便后续找回密码和接收通知。
|
||||
|
||||
## 注册后
|
||||
|
||||
注册成功后,您可以:
|
||||
|
||||
1. [创建专属 Key](</guide/create-key>)
|
||||
2. [充值](</guide/recharge>)账户余额
|
||||
3. 开始使用 AI 编程工具
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 收不到验证邮件?
|
||||
|
||||
* 检查垃圾邮件文件夹
|
||||
* 确认邮箱地址输入正确
|
||||
* 等待 1-2 分钟后重试
|
||||
* 联系客服获取帮助
|
||||
|
||||
### 忘记密码怎么办?
|
||||
|
||||
在登录页面点击"忘记密码",通过注册邮箱重置密码。
|
||||
|
||||
## 下一步
|
||||
|
||||
* [创建专属 Key](</guide/create-key>) \- 获取 API 密钥
|
||||
* [修改令牌设置](</guide/modify-token>) \- 配置令牌参数
|
||||
* [充值](</guide/recharge>) \- 为账户充值
|
||||
35
apidoc/index.md
Normal file
35
apidoc/index.md
Normal file
@ -0,0 +1,35 @@
|
||||
---
|
||||
layout: home
|
||||
|
||||
hero:
|
||||
name: "OneinAI"
|
||||
text: "让 AI 编程更简单"
|
||||
tagline: 专注于给编码人员生产提效的中转站 · 支持 Claude Code、CodeX、Gemini CLI 三大 AI 编程工具 · 开箱即用、价格实惠、专业运营
|
||||
image:
|
||||
src: https://minio.oneinai.com/oneinai/images/logo/oneinai(800x800).png
|
||||
alt: OneinAI
|
||||
actions:
|
||||
- theme: brand
|
||||
text: 开始使用
|
||||
link: /intro/welcome
|
||||
- theme: alt
|
||||
text: 前往官网
|
||||
link: https://api.oneinai.com
|
||||
- theme: alt
|
||||
text: 模型列表
|
||||
link: https://api.oneinai.com/pricing
|
||||
|
||||
features:
|
||||
- icon: 🚀
|
||||
title: 开箱即用
|
||||
details: 无需繁琐配置,无需科学上网,直接使用高质量 AI 编程工具
|
||||
- icon: 💰
|
||||
title: 价格实惠
|
||||
details: 比官方价格便宜,支持多种充值方式,大额可开发票
|
||||
- icon: 🛠️
|
||||
title: 专业运营
|
||||
details: 7×24小时监控,专人维护,一对一人工服务,快速响应问题
|
||||
- icon: 🌟
|
||||
title: 一站式服务
|
||||
details: 一个账号,多种工具:Claude Code、CodeX、Gemini CLI
|
||||
---
|
||||
35
apidoc/intro/links.md
Normal file
35
apidoc/intro/links.md
Normal file
@ -0,0 +1,35 @@
|
||||
# 友情链接
|
||||
|
||||
🤝 推荐说明
|
||||
|
||||
本站管理员推荐,与站长无利益相关。**不做任何背书,请自行判断。**
|
||||
|
||||
## Claude Code 镜像站
|
||||
|
||||
[EasyChatClaude Code 免费账号网页版镜像站,无需注册即可体验 Claude 对话→](<https://easychat.top/>)
|
||||
|
||||
### 简介
|
||||
|
||||
EasyChat 是面向 Claude 网页 Chat 使用场景推出的镜像服务,主要服务于内容创作、学习、日常办公等用户群体。自 2024 年 9 月创建 [easychat.top](<https://easychat.top/>) 站点以来持续运行至今,一直保证稳定可用。
|
||||
|
||||
系统全部自主研发,并持续更新改善,力求给用户提供最接近官网的使用体验。
|
||||
|
||||
### 使用方式
|
||||
|
||||
**1\. 选择账号**
|
||||
|
||||
打开 [EasyChat](<https://easychat.top/>) 后,页面会展示多个可用的免费共享账号卡片,点击任意一个状态为「可用」的账号即可开始对话。
|
||||
|
||||

|
||||
|
||||
**2\. 开始聊天**
|
||||
|
||||
进入后即为标准的 Claude 聊天界面,支持中文对话、多轮上下文、代码生成等全部功能。
|
||||
|
||||

|
||||
|
||||
注意
|
||||
|
||||
* 共享账号为公共资源,请合理使用,勿滥用
|
||||
* 超长对话会消耗更多使用次数,请合理规划用量
|
||||
* 如遇账号不可用,请稍后再试或选择其他账号
|
||||
75
apidoc/intro/overview.md
Normal file
75
apidoc/intro/overview.md
Normal file
@ -0,0 +1,75 @@
|
||||
# 中转站是什么?
|
||||
|
||||
_(非新手可跳过)_
|
||||
|
||||
中转站即您和目标服务商之间的一座桥梁,它有很多好处:
|
||||
|
||||
## 主要优势
|
||||
|
||||
### 🌐 无需魔法
|
||||
|
||||
您不需要使用任何科学上网工具,就可以直接访问和使用 AI 服务。这大大降低了使用门槛,让更多开发者能够轻松上手。
|
||||
|
||||
### 👨💼 有专人运营
|
||||
|
||||
* 7×24 小时监控服务状态
|
||||
* 及时处理用户问题
|
||||
* 定期优化服务质量
|
||||
* 提供技术支持
|
||||
|
||||
### 💵 比官方价格便宜
|
||||
|
||||
通过规模化运营和优化成本,我们能够提供比官方更实惠的价格,让 AI 编程工具触手可及。
|
||||
|
||||
### 🎯 能一站式使用各种各样的服务
|
||||
|
||||
一个账号,多种工具:
|
||||
|
||||
* Claude Code
|
||||
* CodeX
|
||||
* Gemini CLI
|
||||
* 未来还会支持更多工具...
|
||||
|
||||
## 工作原理
|
||||
|
||||
|
||||
您的电脑 ←→ OneinAI 中转站 ←→ AI 服务提供商
|
||||
(国内访问) (海外服务)
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
OneinAI 作为中间层:
|
||||
|
||||
1. 接收您的请求
|
||||
2. 转发给 AI 服务提供商
|
||||
3. 返回结果给您
|
||||
|
||||
整个过程对您来说是透明的,使用体验与官方服务一致。
|
||||
|
||||
## 安全性
|
||||
|
||||
⚠️ 注意
|
||||
|
||||
* 我们不会存储您的代码内容
|
||||
* API 密钥仅用于鉴权
|
||||
* 所有数据传输加密
|
||||
* 遵守数据隐私保护规定
|
||||
|
||||
## 开箱即用,这也是我们的服务目标
|
||||
|
||||
我们致力于让每一位开发者都能轻松使用 AI 编程工具,无论您是:
|
||||
|
||||
* 个人开发者
|
||||
* 初创团队
|
||||
* 企业用户
|
||||
|
||||
都能在 OneinAI 找到适合自己的解决方案。
|
||||
|
||||
## 下一步
|
||||
|
||||
了解了中转站的概念后,您可以:
|
||||
|
||||
* [注册账号](</guide/registration>)开始使用
|
||||
* 查看[常见问题](</support/faq>)了解更多
|
||||
* 联系[售后支持](</support/after-sales>)获取帮助
|
||||
92
apidoc/intro/pricing.md
Normal file
92
apidoc/intro/pricing.md
Normal file
@ -0,0 +1,92 @@
|
||||
# 价格说明
|
||||
|
||||
OneinAI 采用**分组倍率** 计费,充值倍率固定为1人民币=1美元,模型基础费用统一固定,实际费用根据分组倍率灵活调整(例如分组倍率是0.8,那么表示0.8人民币=1美元额度),倍率越低越省钱。
|
||||
|
||||
看不懂分组倍率?
|
||||
|
||||
可以前往 [模型广场](<https://api.oneinai.com/pricing>) 点开具体的某个模型,里面会展示不同分组下的**最终价格** ,更直观地对比各渠道的实际费用。
|
||||
|
||||
## 用户等级
|
||||
|
||||
OneinAI 实行累计充值会员制度。随着累计充值额度的增加,用户可获得更低的计费倍率。等级**长期保留** 。
|
||||
|
||||
等级| 升级条件| 说明
|
||||
---|---|---
|
||||
**C1**| 累计充值满 **¥25**| 暂无优惠
|
||||
**C2**| 累计充值满 **¥500**| 自动升级,享受折扣倍率
|
||||
**C3**| 累计充值满 **¥1000**| 自动升级,享受最优惠倍率
|
||||
|
||||
TIP
|
||||
|
||||
倍率数字越小代表价格越低。达到充值门槛后**最长5分钟内自动升级** ,无需任何申请。
|
||||
|
||||
* * *
|
||||
|
||||
## Claude 模型
|
||||
|
||||
所有 Claude 分组均支持:PDF 解析 · 图片识别 · 深度思考(Thinking)· 联网搜索
|
||||
|
||||
分组| 支持模型| 上下文| C1| C2| C3| 说明
|
||||
---|---|---|---|---|---|---
|
||||
**Claude Code-稳定**| `claude-haiku-4-5-20251001`| —| **2.3**| **2.25**| **2.2**| Max 号池,**仅限 Claude Code CLI / VS Code 官方插件** 使用
|
||||
`claude-sonnet-4-6`| 200K
|
||||
`claude-opus-4-6`| 1M
|
||||
`claude-opus-4-7`| 1M
|
||||
**cc逆向**| `claude-haiku-4-5-20251001`| —| **0.5**| **0.45**| **0.45**| 低价 kiro 渠道,可能因号池不够没那么稳定
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
`claude-opus-4-7`| —
|
||||
**cc逆向2**| `claude-haiku-4-5-20251001`| —| **1.4**| **1.35**| **1.3**| vertex + bedrock 逆向混合分组,因号池风控可能比较容易 429
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
`claude-opus-4-7`| —
|
||||
**cc逆向3**| `claude-haiku-4-5-20251001`| —| **1.35**| **1.3**| **1.25**| 优质高智商渠道,供应量较小,可能不稳定
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
`claude-opus-4-7`| —
|
||||
**cc-wf**| `claude-haiku-4-5-20251001`| —| **0.7**| **0.65**| **0.6**| Windsurf 渠道,Haiku 模型路由至 Kiro
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
`claude-opus-4-7`| —
|
||||
**cc-反重力**| `claude-haiku-4-5-20251001`| —| **0.7**| **0.65**| **0.6**| 谷歌反重力渠道,缓存较低请注意
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
**cc-kiro**| `claude-haiku-4-5-20251001`| —| **0.8**| **0.75**| **0.7**| 优质 Kiro 渠道,相对 cc逆向 更加稳定
|
||||
`claude-sonnet-4-6`| 1M
|
||||
`claude-opus-4-6`| —
|
||||
`claude-opus-4-7`| —
|
||||
|
||||
* * *
|
||||
|
||||
## GPT 模型
|
||||
|
||||
所有 GPT 分组均支持:PDF 解析 · 图片识别 · 深度思考 · 联网搜索
|
||||
|
||||
分组| 支持模型| 上下文| C1| C2| C3
|
||||
---|---|---|---|---|---
|
||||
**Codex**| `gpt-5.2`| 400K| **0.2**| **0.2**| **0.2**
|
||||
`gpt-5.3-codex`| 400K
|
||||
`gpt-5.4`| 1M
|
||||
`gpt-5.4-mini`| 400K
|
||||
`gpt-5.5`| 400K
|
||||
|
||||
* * *
|
||||
|
||||
## Gemini 模型
|
||||
|
||||
所有 Gemini 分组均支持:PDF 解析 · 图片识别 · 深度思考 · 联网搜索
|
||||
|
||||
分组| 支持模型| 上下文| C1| C2| C3| 说明
|
||||
---|---|---|---|---|---|---
|
||||
**Gemini**| `gemini-3-flash-preview`| 1M| **0.7**| **0.7**| **0.7**| 谷歌反重力渠道,近期因额度大砍不稳定
|
||||
`gemini-3-pro-preview`| 1M
|
||||
`gemini-3.1-pro-preview`| 1M
|
||||
|
||||
* * *
|
||||
|
||||
注意事项
|
||||
|
||||
* **Claude Code-稳定** 分组仅支持 Claude Code CLI 及 VS Code 官方插件,不适用于其他客户端。
|
||||
* **cc逆向** / **cc逆向2** 价格相对较低,但因号池或风控可能不太稳定;对稳定性有要求请选择 **cc-kiro** 或 **cc逆向3** 。
|
||||
* **cc-反重力** 及 **Gemini** 分组均走谷歌反重力渠道,缓存机制较弱,请合理控制请求频率。
|
||||
* 各分组价格及支持模型可能随时调整,请以平台实时展示为准。
|
||||
42
apidoc/intro/welcome.md
Normal file
42
apidoc/intro/welcome.md
Normal file
@ -0,0 +1,42 @@
|
||||
# 欢迎使用 OneinAI!
|
||||
|
||||
OneinAI 是一家专注于给编码人员生产提效的中转站(目前主要是 Claude Code、Codex等服务),我们始终坚持"真诚 热爱"的服务理念,希望能和用户交朋友。有任何服务不周到、用得不爽的地方,请直接联系(见[售前售后](</support/after-sales>))我们的服务人员。
|
||||
|
||||
💡 提示
|
||||
|
||||
我们提供开箱即用的服务,让您无需繁琐配置即可享受高质量的 AI 编程助手。
|
||||
|
||||
## 为什么选择 OneinAI?
|
||||
|
||||
### 💰 价格实惠
|
||||
|
||||
比官方价格便宜,让更多开发者能够使用高质量的 AI 编程工具。
|
||||
|
||||
### 🛠️ 专业运营
|
||||
|
||||
* 有专人运营维护
|
||||
* 一对一人工服务
|
||||
* 快速响应问题
|
||||
|
||||
### 🌟 一站式服务
|
||||
|
||||
支持多种 AI 编程工具:
|
||||
|
||||
* **Claude Code** \- Anthropic 官方 CLI 工具
|
||||
* **CodeX** \- GPT 编码助手
|
||||
* **Gemini CLI** \- Google AI 编程助手
|
||||
|
||||
## 快速开始
|
||||
|
||||
如果您是第一次使用,建议按照以下步骤操作:
|
||||
|
||||
1. [注册账号](</guide/registration>) \- 创建您的 OneinAI 账户
|
||||
2. [创建 Key](</guide/create-key>) \- 获取 API 密钥
|
||||
3. [安装 Node.js](</node/windows>) \- 准备运行环境
|
||||
4. [部署工具](</deploy/claude-code>) \- 开始使用 AI 编程助手
|
||||
|
||||
## 下一步
|
||||
|
||||
* 了解[中转站是什么](</intro/overview>)
|
||||
* 查看[使用指南](</guide/registration>)
|
||||
* 安装[配置工具](</tools/cc-switch>)
|
||||
147
apidoc/node/linux.md
Normal file
147
apidoc/node/linux.md
Normal file
@ -0,0 +1,147 @@
|
||||
# Linux 平台安装 Node.js
|
||||
|
||||
**三大 AI 编程工具的必备运行环境**
|
||||
|
||||
💡 重要说明
|
||||
|
||||
Claude Code、CodeX 和 Gemini CLI 都需要 Node.js 18+ 运行环境。 如果您已安装 Node.js 18 或更高版本,可跳过本章节。 验证命令:`node -v`
|
||||
|
||||
## Ubuntu/Debian 发行版
|
||||
|
||||
### 使用 NodeSource 仓库(推荐)
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
|
||||
sudo apt-get install -y nodejs
|
||||
|
||||
# 验证安装
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
|
||||
## CentOS/RHEL 发行版
|
||||
|
||||
bash
|
||||
|
||||
|
||||
curl -fsSL https://rpm.nodesource.com/setup_lts.x | sudo bash -
|
||||
sudo yum install -y nodejs
|
||||
|
||||
# 验证安装
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
|
||||
## Fedora 发行版
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo dnf install -y nodejs npm
|
||||
|
||||
# 验证安装
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
## Arch Linux
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo pacman -S nodejs npm
|
||||
|
||||
# 验证安装
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
## 使用 nvm(推荐进阶用户)
|
||||
|
||||
nvm 允许您管理多个 Node.js 版本:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 安装 nvm
|
||||
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
|
||||
|
||||
# 重新加载 shell 配置
|
||||
source ~/.bashrc
|
||||
|
||||
# 安装 Node.js LTS
|
||||
nvm install --lts
|
||||
|
||||
# 设置默认版本
|
||||
nvm use --lts
|
||||
nvm alias default node
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 权限问题
|
||||
|
||||
如果遇到权限问题,可以配置 npm 使用用户目录:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir ~/.npm-global
|
||||
npm config set prefix '~/.npm-global'
|
||||
echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc
|
||||
source ~/.bashrc
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
### 版本过旧
|
||||
|
||||
如果系统自带的 Node.js 版本过旧,建议使用 NodeSource 仓库或 nvm 安装最新 LTS 版本。
|
||||
|
||||
## 下一步
|
||||
|
||||
✅ 环境准备完成!
|
||||
|
||||
现在您可以继续安装 Claude Code、CodeX 或 Gemini CLI 了。
|
||||
|
||||
* [安装 Claude Code](</deploy/claude-code>)
|
||||
* [安装 CodeX](</deploy/codex>)
|
||||
* [安装 Gemini CLI](</deploy/gemini-cli>)
|
||||
87
apidoc/node/macos.md
Normal file
87
apidoc/node/macos.md
Normal file
@ -0,0 +1,87 @@
|
||||
# macOS 平台安装 Node.js
|
||||
|
||||
**三大 AI 编程工具的必备运行环境**
|
||||
|
||||
💡 重要说明
|
||||
|
||||
Claude Code、CodeX 和 Gemini CLI 都需要 Node.js 18+ 运行环境。 如果您已安装 Node.js 18 或更高版本,可跳过本章节。 验证命令:`node -v`
|
||||
|
||||
## 方法一:Homebrew 包管理器(推荐)
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 安装 Homebrew(如果未安装)
|
||||
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
||||
|
||||
# 安装 Node.js
|
||||
brew install node
|
||||
|
||||
# 验证安装
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
|
||||
## 方法二:官方安装包
|
||||
|
||||
1. 访问 Node.js 官网:<https://nodejs.org>
|
||||
2. 下载 LTS 版本的 .pkg 安装包
|
||||
3. 运行安装程序并按照提示完成安装
|
||||
|
||||
## 验证安装
|
||||
|
||||
打开终端,执行:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
如果显示版本号(如 v18.x.x 或更高),说明安装成功。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### Homebrew 安装慢
|
||||
|
||||
可以使用国内镜像:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
|
||||
|
||||
1
|
||||
|
||||
### 权限问题
|
||||
|
||||
如果遇到权限问题,不要使用 `sudo`,而是修复 Homebrew 权限:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo chown -R $(whoami) /usr/local/bin /usr/local/lib
|
||||
|
||||
1
|
||||
|
||||
## 下一步
|
||||
|
||||
✅ 环境准备完成!
|
||||
|
||||
现在您可以继续安装 Claude Code、CodeX 或 Gemini CLI 了。
|
||||
|
||||
* [安装 Claude Code](</deploy/claude-code>)
|
||||
* [安装 CodeX](</deploy/codex>)
|
||||
* [安装 Gemini CLI](</deploy/gemini-cli>)
|
||||
88
apidoc/node/windows.md
Normal file
88
apidoc/node/windows.md
Normal file
@ -0,0 +1,88 @@
|
||||
# Windows 平台安装 Node.js
|
||||
|
||||
**三大 AI 编程工具的必备运行环境**
|
||||
|
||||
💡 重要说明
|
||||
|
||||
Claude Code、CodeX 和 Gemini CLI 都需要 Node.js 18+ 运行环境。 如果您已安装 Node.js 18 或更高版本,可跳过本章节。 验证命令:`node -v`
|
||||
|
||||
## 方法一:官方安装包(推荐)
|
||||
|
||||
1. 访问 Node.js 官网:<https://nodejs.org/zh-cn/download>
|
||||
2. 下载 LTS(长期支持)版本的 Windows Installer (.msi)
|
||||
3. 运行安装包,采用默认配置完成安装
|
||||
4. 安装程序会自动配置系统 PATH 环境变量
|
||||
|
||||

|
||||
|
||||
## 方法二:包管理器安装
|
||||
|
||||
### 使用 Winget
|
||||
|
||||
Windows 11 或 Windows 10 最新版:
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
winget install OpenJS.NodeJS.LTS
|
||||
|
||||
1
|
||||
|
||||
### 使用 Chocolatey
|
||||
|
||||
需先安装 Chocolatey:
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
choco install nodejs-lts
|
||||
|
||||
1
|
||||
|
||||
### 使用 Scoop
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
scoop install nodejs-lts
|
||||
|
||||
1
|
||||
|
||||
## 验证安装
|
||||
|
||||
打开命令提示符或 PowerShell,执行:
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
node --version
|
||||
npm --version
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
如果显示版本号(如 v18.x.x 或更高),说明安装成功。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 提示"不是内部或外部命令"
|
||||
|
||||
* 重新打开终端窗口
|
||||
* 检查 PATH 环境变量是否包含 Node.js 路径
|
||||
* 重启电脑后再试
|
||||
|
||||
### 安装失败
|
||||
|
||||
* 以管理员身份运行安装程序
|
||||
* 关闭杀毒软件后重试
|
||||
* 检查系统盘空间是否充足
|
||||
|
||||
## 下一步
|
||||
|
||||
✅ 环境准备完成!
|
||||
|
||||
现在您可以继续安装 Claude Code、CodeX 或 Gemini CLI 了。
|
||||
|
||||
* [返回环境安装总览](</node/windows>)
|
||||
* [安装 Claude Code](</deploy/claude-code>)
|
||||
* [使用 CC-Switch 工具](</tools/cc-switch>)
|
||||
202
apidoc/skills/ikuncode-aimcp.md
Normal file
202
apidoc/skills/ikuncode-aimcp.md
Normal file
@ -0,0 +1,202 @@
|
||||
# ikuncode-aimcp - 统一 AI MCP 服务器
|
||||
|
||||
**一个二进制,三套 AI 引擎 — Gemini · Codex · Grok**
|
||||
|
||||
📋 简介
|
||||
|
||||
ikuncode-aimcp 是一个用 Rust 编写的统一 MCP 服务器,将 Gemini CLI、Codex CLI 和 Grok Search 整合到单个进程中。配置一次,即可在 Cursor / Windsurf / Claude Desktop 等任意 MCP 客户端中使用全部工具。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
GitHub 仓库| [xuxu777xu/ikuncode-aimcp](<https://github.com/xuxu777xu/ikuncode-aimcp>)
|
||||
ikun API| [api.ikuncode.cc](<https://api.oneinai.com>)
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
* ✅ **一个二进制,全部工具** :只需配置一个 MCP 服务器,取代三个独立安装
|
||||
* ✅ **运行时检测** :启动时自动检测可用工具,不可用的工具返回清晰错误信息
|
||||
* ✅ **AdaptiveStdio 传输** :自动检测 JSONL 和 LSP 帧格式,最大化客户端兼容性
|
||||
* ✅ **纯 Rust GrokSearch** :零 Python 依赖,通过 Grok API 实现 Web 搜索和内容抓取
|
||||
* ✅ **Gemini 图像生成** :内置 `gemini_image` 工具,支持宽高比和分辨率控制
|
||||
|
||||
## 🧰 工具列表
|
||||
|
||||
工具| 来源| 描述
|
||||
---|---|---
|
||||
`gemini`| Gemini CLI| AI 驱动的任务执行,支持会话连续性
|
||||
`gemini_image`| Gemini CLI| AI 图像生成,使用专用生图模型
|
||||
`codex`| Codex CLI| AI 辅助编码,支持沙箱策略
|
||||
`web_search`| Grok API| Web 搜索,返回结构化 JSON 结果
|
||||
`web_fetch`| Grok API| 抓取网页内容并转为 Markdown
|
||||
`get_config_info`| Grok API| 显示配置信息并测试 API 连接
|
||||
|
||||
### 相关项目
|
||||
|
||||
项目| 类型| 适用场景
|
||||
---|---|---
|
||||
**ikuncode-aimcp** (本项目)| MCP Server| 所有 MCP 客户端通用,含 gemini_image 图像生成
|
||||
[ikunimage](</skills/ikunimage>)| Claude Code Skill| Claude Code 专用 — 文生图 / 图生图 / 并发批量生成
|
||||
|
||||
## 🛠️ 安装
|
||||
|
||||
### 方式一:下载预编译二进制(推荐)
|
||||
|
||||
从 [GitHub Releases](<https://github.com/xuxu777xu/ikuncode-aimcp/releases>) 下载对应平台的二进制文件:
|
||||
|
||||
平台| 文件名
|
||||
---|---
|
||||
Windows x64| `ikuncode-aimcp-x86_64-pc-windows-msvc.exe`
|
||||
macOS Apple Silicon| `ikuncode-aimcp-aarch64-apple-darwin`
|
||||
macOS Intel| `ikuncode-aimcp-x86_64-apple-darwin`
|
||||
Linux x64| `ikuncode-aimcp-x86_64-unknown-linux-gnu`
|
||||
|
||||
下载后放到 `PATH` 目录中即可使用。macOS / Linux 需要添加执行权限:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
chmod +x ikuncode-aimcp-*
|
||||
mv ikuncode-aimcp-* /usr/local/bin/ikuncode-aimcp
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
### 方式二:npm 安装
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g ikuncode-aimcp
|
||||
|
||||
1
|
||||
|
||||
### 方式三:cargo 安装
|
||||
|
||||
bash
|
||||
|
||||
|
||||
cargo install --git https://github.com/xuxu777xu/ikuncode-aimcp.git
|
||||
|
||||
1
|
||||
|
||||
### 方式四:从源码编译
|
||||
|
||||
bash
|
||||
|
||||
|
||||
git clone https://github.com/xuxu777xu/ikuncode-aimcp.git
|
||||
cd ikuncode-aimcp
|
||||
cargo build --release
|
||||
# 二进制文件在 target/release/ 目录下
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
|
||||
## ⚙️ 配置 MCP 客户端
|
||||
|
||||
在你的 MCP 客户端(如 Claude Desktop、Cursor、Windsurf 等)中添加以下配置:
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"mcpServers": {
|
||||
"ikuncode-aimcp": {
|
||||
"command": "ikuncode-aimcp",
|
||||
"env": {
|
||||
"GEMINI_API_KEY": "你的-gemini-api-key",
|
||||
"GROK_API_KEY": "你的-grok-api-key"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
|
||||
⚠️ 环境变量说明
|
||||
|
||||
* `GEMINI_API_KEY`:用于 Gemini 相关工具(`gemini`、`gemini_image`)
|
||||
* `GROK_API_KEY`:用于 Grok 搜索工具(`web_search`、`web_fetch`)
|
||||
* Codex 工具使用独立配置,请参考 [Codex 部署文档](</deploy/codex>)
|
||||
|
||||
## 📖 工具使用说明
|
||||
|
||||
### gemini — AI 任务执行
|
||||
|
||||
参数| 必填| 类型| 默认值| 描述
|
||||
---|---|---|---|---
|
||||
`PROMPT`| 是| string| —| 发送给 Gemini 的任务指令
|
||||
`sandbox`| 否| bool| false| 在沙箱模式下运行
|
||||
`SESSION_ID`| 否| string| —| 恢复已有会话,用于多轮对话
|
||||
`model`| 否| string| —| 模型覆盖
|
||||
`timeout_secs`| 否| int| 600| 超时时间(1–3600 秒)
|
||||
|
||||
### gemini_image — 图像生成
|
||||
|
||||
参数| 必填| 类型| 默认值| 描述
|
||||
---|---|---|---|---
|
||||
`PROMPT`| 是| string| —| 图像生成指令
|
||||
`model`| 否| string| —| 模型覆盖
|
||||
`output_dir`| 否| string| —| 图片保存目录
|
||||
`aspect_ratio`| 否| string| —| 宽高比(1:1 / 16:9 / 9:16 等)
|
||||
`image_size`| 否| string| —| 分辨率(1K / 2K / 4K)
|
||||
`timeout_secs`| 否| int| 600| 超时时间(1–3600 秒)
|
||||
|
||||
### codex — AI 辅助编码
|
||||
|
||||
参数| 必填| 类型| 默认值| 描述
|
||||
---|---|---|---|---
|
||||
`PROMPT`| 是| string| —| 发送给 Codex 的任务指令
|
||||
`cd`| 是| string| —| 工作目录路径
|
||||
`sandbox`| 否| string| `read-only`| 沙箱策略
|
||||
|
||||
### web_search — Web 搜索
|
||||
|
||||
参数| 必填| 类型| 默认值| 描述
|
||||
---|---|---|---|---
|
||||
`query`| 是| string| —| 自然语言搜索查询
|
||||
`platform`| 否| string| —| 聚焦特定平台
|
||||
`min_results`| 否| int| 3| 最少返回结果数
|
||||
`max_results`| 否| int| 10| 最多返回结果数
|
||||
|
||||
### web_fetch — 网页内容抓取
|
||||
|
||||
参数| 必填| 类型| 默认值| 描述
|
||||
---|---|---|---|---
|
||||
`url`| 是| string| —| 有效的 HTTP/HTTPS 网址
|
||||
|
||||
### get_config_info — Grok 配置诊断
|
||||
|
||||
无参数。返回当前 Grok 配置信息并测试 API 连接。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 安装后命令找不到?
|
||||
|
||||
确认二进制文件已放到 `PATH` 目录中,且有执行权限。可运行 `which ikuncode-aimcp` 检查。
|
||||
|
||||
### Gemini 工具不可用?
|
||||
|
||||
检查 `GEMINI_API_KEY` 环境变量是否正确设置,以及本地是否安装了 Gemini CLI。
|
||||
|
||||
### Grok 搜索返回错误?
|
||||
|
||||
运行 `get_config_info` 工具检查 API 配置和连接状态。
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
312
apidoc/skills/ikunimage.md
Normal file
312
apidoc/skills/ikunimage.md
Normal file
@ -0,0 +1,312 @@
|
||||
# ikunimage - AI 图片生成器
|
||||
|
||||
**Claude Code Skill — 通过 ikun API 调用 Gemini 图像模型,支持文生图与图生图**
|
||||
|
||||
📋 简介
|
||||
|
||||
ikunimage 是一款 Claude Code Skill 插件,通过 [ikun API](<https://api.oneinai.com>) 调用 **NanoBananaPro(Gemini 3 Pro Image Preview)** 模型,在 Claude Code 对话中直接生成高质量图片。支持文生图、图生图编辑、批量并发等多种模式。
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
GitHub 仓库| [deijing/ikunimage](<https://github.com/deijing/ikunimage>)
|
||||
ikun API| [api.ikuncode.cc](<https://api.oneinai.com>)
|
||||
|
||||
## ✨ 功能特点
|
||||
|
||||
* ✅ **文生图** :用自然语言描述场景,AI 生成对应图片
|
||||
* ✅ **图生图** :上传本地图片 + 编辑描述,AI 修改生成新图片
|
||||
* ✅ **10 种宽高比** :1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9 / 5:4 / 4:5
|
||||
* ✅ **3 档分辨率** :1K(快速预览)/ 2K(推荐)/ 4K(超高清)
|
||||
* ✅ **文字渲染** :支持在图片中渲染中文文字(招牌、海报、标语等)
|
||||
* ✅ **并发批量** :多张图片并发生成,大幅缩短总耗时
|
||||
* ✅ **配置文件管理** :API Key 存储在本地配置文件,安全便捷
|
||||
|
||||
## 📋 前置要求
|
||||
|
||||
* [Claude Code](<https://docs.anthropic.com/en/docs/claude-code>) CLI 已安装
|
||||
* Python 3.10+
|
||||
* ikun API Key(从 [api.ikuncode.cc](<https://api.oneinai.com>) 获取)
|
||||
|
||||
## 🛠️ 安装
|
||||
|
||||
### 第一步:下载 Skill
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 如果目录不存在,先创建
|
||||
mkdir -p ~/.claude/skills
|
||||
|
||||
# 克隆 ikunimage 到 skills 目录
|
||||
cd ~/.claude/skills
|
||||
git clone https://github.com/deijing/ikunimage.git
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
|
||||
安装完成后目录结构如下:
|
||||
|
||||
|
||||
~/.claude/skills/ikunimage/
|
||||
├── SKILL.md # Skill 定义文件
|
||||
├── scripts/
|
||||
│ ├── generate_ikun.py # 文生图脚本
|
||||
│ └── generate_ikun_edit.py # 图生图脚本
|
||||
└── references/
|
||||
└── api-reference.md # API 参考文档
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
|
||||
### 第二步:安装依赖
|
||||
|
||||
bash
|
||||
|
||||
|
||||
pip install httpx
|
||||
|
||||
1
|
||||
|
||||
### 第三步:配置 API Key
|
||||
|
||||
三种方式任选其一:
|
||||
|
||||
**方式 A:交互式配置(推荐)**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
python ~/.claude/skills/ikunimage/scripts/generate_ikun.py --setup
|
||||
|
||||
1
|
||||
|
||||
按提示输入你的 API Key 即可,配置会保存到 `~/.ikunimage/config.json`。
|
||||
|
||||
**方式 B:手动创建配置文件**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
mkdir -p ~/.ikunimage
|
||||
echo '{"api_key": "sk-你的key"}' > ~/.ikunimage/config.json
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
**方式 C:环境变量**
|
||||
|
||||
bash
|
||||
|
||||
|
||||
export IKUN_API_KEY="sk-你的key"
|
||||
|
||||
1
|
||||
|
||||
💡 API Key 加载优先级
|
||||
|
||||
`--api-key` 命令行参数 > `IKUN_API_KEY` 环境变量 > `~/.ikunimage/config.json` 配置文件
|
||||
|
||||
## 📖 使用方法
|
||||
|
||||
### 在 Claude Code 中使用
|
||||
|
||||
安装配置完成后,在 Claude Code 对话中输入:
|
||||
|
||||
|
||||
/ikunimage
|
||||
|
||||
1
|
||||
|
||||
然后描述你想要的图片即可。例如:
|
||||
|
||||
* "画一张江南水乡的风景"
|
||||
* "生成一张 4K 超宽屏的故宫雪景"
|
||||
* "批量生成 5 张不同风格的古风人像"
|
||||
|
||||
图生图编辑:
|
||||
|
||||
* "编辑 /path/to/photo.jpg,把背景改成竹林"
|
||||
|
||||
### 独立脚本使用
|
||||
|
||||
也可以脱离 Claude Code,直接在命令行中调用。
|
||||
|
||||
**文生图** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
python ~/.claude/skills/ikunimage/scripts/generate_ikun.py \\
|
||||
-p "一位中国女性,身穿汉服,站在竹林中,晨雾缭绕" \\
|
||||
-ar 3:4 \\
|
||||
-s 2K \\
|
||||
-o ./output.png
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
**图生图** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
python ~/.claude/skills/ikunimage/scripts/generate_ikun_edit.py \\
|
||||
-i ./photo.jpg \\
|
||||
-p "将背景改为雪景,保持人物不变" \\
|
||||
-ar 3:4 \\
|
||||
-o ./edited.png
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
**批量生成** :
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 准备任务文件 tasks.json
|
||||
cat > tasks.json << 'EOF'
|
||||
[
|
||||
{"prompt": "描述1", "aspect_ratio": "3:4", "size": "2K", "output": "./out1.png"},
|
||||
{"prompt": "描述2", "aspect_ratio": "16:9", "size": "1K", "output": "./out2.png"}
|
||||
]
|
||||
EOF
|
||||
|
||||
# 执行批量生成
|
||||
python ~/.claude/skills/ikunimage/scripts/generate_ikun.py \\
|
||||
--batch tasks.json \\
|
||||
--workers 2
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
|
||||
## 📐 参数速查
|
||||
|
||||
### 文生图 (generate_ikun.py)
|
||||
|
||||
参数| 简写| 说明| 默认值
|
||||
---|---|---|---
|
||||
`--setup`| | 交互式配置 API Key|
|
||||
`--api-key`| | 指定 API Key| 从配置加载
|
||||
`--prompt`| `-p`| 图片描述(必填)|
|
||||
`--aspect-ratio`| `-ar`| 宽高比| `1:1`
|
||||
`--size`| `-s`| 分辨率(1K/2K/4K)| `2K`
|
||||
`--output`| `-o`| 输出路径| `output.png`
|
||||
`--batch`| `-b`| 批量任务 JSON 文件|
|
||||
`--workers`| `-w`| 并发数| 自动(默认 2)
|
||||
`--retry`| `-r`| 重试次数(0-10)| `3`
|
||||
|
||||
### 图生图 (generate_ikun_edit.py)
|
||||
|
||||
参数| 简写| 说明| 默认值
|
||||
---|---|---|---
|
||||
`--setup`| | 交互式配置 API Key|
|
||||
`--api-key`| | 指定 API Key| 从配置加载
|
||||
`--input`| `-i`| 输入图片路径(必填)|
|
||||
`--prompt`| `-p`| 编辑描述(必填)|
|
||||
`--aspect-ratio`| `-ar`| 输出宽高比| `1:1`
|
||||
`--output`| `-o`| 输出路径| `output.png`
|
||||
`--batch`| `-b`| 批量任务 JSON 文件|
|
||||
`--workers`| `-w`| 并发数| 自动(默认 2)
|
||||
`--retry`| `-r`| 重试次数(0-10)| `3`
|
||||
|
||||
⚠️ 互斥参数
|
||||
|
||||
`--prompt` 和 `--batch` 互斥,单图模式和批量模式必须二选一。
|
||||
|
||||
## 📊 分辨率参考
|
||||
|
||||
### 1K(快速预览)
|
||||
|
||||
宽高比| 分辨率
|
||||
---|---
|
||||
1:1| 1024×1024
|
||||
16:9| 1376×768
|
||||
9:16| 768×1376
|
||||
4:3| 1200×896
|
||||
3:4| 896×1200
|
||||
|
||||
### 2K(推荐)
|
||||
|
||||
宽高比| 分辨率
|
||||
---|---
|
||||
1:1| 2048×2048
|
||||
16:9| 2752×1536
|
||||
9:16| 1536×2752
|
||||
4:3| 2400×1792
|
||||
3:4| 1792×2400
|
||||
|
||||
### 4K(超高清)
|
||||
|
||||
宽高比| 分辨率
|
||||
---|---
|
||||
1:1| 4096×4096
|
||||
16:9| 5504×3072
|
||||
9:16| 3072×5504
|
||||
4:3| 4800×3584
|
||||
3:4| 3584×4800
|
||||
|
||||
## 🖼️ 图生图支持格式
|
||||
|
||||
格式| 支持| 备注
|
||||
---|---|---
|
||||
JPG / JPEG| ✅| 推荐
|
||||
PNG| ✅| 推荐
|
||||
WebP| ✅|
|
||||
GIF| ✅| 仅使用第一帧
|
||||
|
||||
💡 建议
|
||||
|
||||
图片大小推荐 < 4MB,过大可能导致上传变慢或超时。
|
||||
|
||||
## 常见问题
|
||||
|
||||
### 提示 "未找到 API Key"?
|
||||
|
||||
运行交互式配置命令:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
python ~/.claude/skills/ikunimage/scripts/generate_ikun.py --setup
|
||||
|
||||
1
|
||||
|
||||
### 请求超时?
|
||||
|
||||
4K 图片生成较慢,脚本已设置充足的超时时间。如果仍然超时,可降低分辨率到 2K 或 1K。
|
||||
|
||||
### 收到 429 错误?
|
||||
|
||||
触发了 API 频率限制。脚本会自动指数退避重试(默认 3 次)。可加 `--retry 5` 增加重试次数。
|
||||
|
||||
### 更多问题
|
||||
|
||||
请查看 [FAQ](</support/faq>) 或联系[售后支持](</support/after-sales>)。
|
||||
89
apidoc/support/after-sales.md
Normal file
89
apidoc/support/after-sales.md
Normal file
@ -0,0 +1,89 @@
|
||||
# 售前售后
|
||||
|
||||
有任何不懂的,可以进群咨询,可提供人工一对一服务。
|
||||
|
||||
## 联系方式
|
||||
|
||||
### Telegram 群组
|
||||
|
||||
**推荐方式** :加入我们的 Telegram 群组,快速获得帮助。
|
||||
|
||||
* **群组链接** :<https://t.me/ikuncode>
|
||||
|
||||
群内可以:
|
||||
|
||||
* 咨询使用问题
|
||||
* 反馈bug和建议
|
||||
* 获取最新消息
|
||||
* 与其他用户交流
|
||||
|
||||
### QQ 群
|
||||
|
||||
* **QQ 群号** :请扫描下方二维码加入
|
||||
|
||||
### 扫码加群
|
||||
|
||||

|
||||
|
||||
## 服务时间
|
||||
|
||||
* **工作日** :9:00 - 00:00
|
||||
* **节假日** :11:00 - 00:00
|
||||
|
||||
💡 提示
|
||||
|
||||
紧急问题建议在工作时间联系,响应更快。
|
||||
|
||||
## 服务内容
|
||||
|
||||
### 售前咨询
|
||||
|
||||
* 产品功能介绍
|
||||
* 价格方案说明
|
||||
* 技术可行性咨询
|
||||
* 企业方案定制
|
||||
|
||||
### 售后支持
|
||||
|
||||
* 使用问题解答
|
||||
* 技术故障排查
|
||||
* 配置指导
|
||||
* 一对一人工服务
|
||||
|
||||
### 企业服务
|
||||
|
||||
如需企业服务,请联系客服
|
||||
|
||||
## 常见问题快速通道
|
||||
|
||||
在联系客服前,建议先查看:
|
||||
|
||||
* [常见问题 FAQ](</support/faq>)
|
||||
* [部署指南](</deploy/claude-code>)
|
||||
* [配置工具](</tools/cc-switch>)
|
||||
|
||||
## 反馈建议
|
||||
|
||||
我们欢迎您的反馈和建议:
|
||||
|
||||
* 功能需求
|
||||
* 使用体验
|
||||
* 问题反馈
|
||||
* 改进建议
|
||||
|
||||
所有反馈都会认真对待,帮助我们持续改进服务。
|
||||
|
||||
## 服务承诺
|
||||
|
||||
💪 我们的承诺
|
||||
|
||||
* **真诚服务** :坦诚沟通,不夸大宣传
|
||||
* **热爱产品** :持续优化,追求卓越
|
||||
* **快速响应** :及时处理问题和反馈
|
||||
* **用户至上** :以用户体验为中心
|
||||
|
||||
* * *
|
||||
|
||||
OneinAI - 真诚 热爱
|
||||
|
||||
我们希望能和用户交朋友
|
||||
159
apidoc/support/faq.md
Normal file
159
apidoc/support/faq.md
Normal file
@ -0,0 +1,159 @@
|
||||
# 常见问题(FAQ)
|
||||
|
||||
## 账号与 Key
|
||||
|
||||
### 1\. 可以开发票对吧?
|
||||
|
||||
对。支持普票、专票。累计充值满500元可提交开发票需求。
|
||||
|
||||
### 2\. Key 无效/鉴权失败怎么办?
|
||||
|
||||
* 检查是否复制了多余空格
|
||||
* 检查 Key 是否过期/被禁用
|
||||
* 检查请求是否使用了正确的 Header/参数
|
||||
* 确认使用了对应工具的专用令牌组
|
||||
|
||||
### 3\. 如何查看余额和消费记录?
|
||||
|
||||
登录控制台即可查看:
|
||||
|
||||
* 当前余额
|
||||
* 充值记录
|
||||
* 消费明细
|
||||
* 账单详情
|
||||
|
||||
## 网站访问
|
||||
|
||||
### 网站进入为什么白屏?
|
||||
|
||||
很有可能是你的广告过滤插件导致,请手动将我们的域名添加到白名单。
|
||||
|
||||
常见的广告过滤插件:
|
||||
|
||||
* AdBlock
|
||||
* uBlock Origin
|
||||
* AdGuard
|
||||
|
||||
解决方法:
|
||||
|
||||
1. 打开插件设置
|
||||
2. 添加 `api.ikuncode.cc` 到白名单
|
||||
3. 刷新页面
|
||||
4. 尝试浏览器强制刷新(Windows:`Ctrl + Shift + R`,macOS:`Cmd + Shift + R`)
|
||||
|
||||
## 环境与安装
|
||||
|
||||
### npm 安装很慢/失败?
|
||||
|
||||
可以使用国内镜像:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 设置淘宝镜像
|
||||
npm config set registry https://registry.npmmirror.com
|
||||
|
||||
# 验证配置
|
||||
npm config get registry
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
### Node.js 版本过低怎么办?
|
||||
|
||||
Claude Code、CodeX 和 Gemini CLI 都需要 Node.js 18+ 版本。
|
||||
|
||||
升级方法:
|
||||
|
||||
* Windows: 重新下载安装最新版本
|
||||
* macOS: `brew upgrade node`
|
||||
* Linux: 使用 nvm 或 NodeSource 仓库
|
||||
|
||||
### 环境变量设置后不生效?
|
||||
|
||||
* Windows: 重启终端窗口或重启电脑
|
||||
* macOS/Linux: 执行 `source ~/.bashrc` 或 `source ~/.zshrc`
|
||||
|
||||
## 工具使用
|
||||
|
||||
### CC-Switch 无法启动?
|
||||
|
||||
1. 检查是否有权限问题
|
||||
2. 尝试以管理员身份运行
|
||||
3. 查看是否有杀毒软件拦截
|
||||
4. 重新下载安装最新版本
|
||||
|
||||
### Claude Code 提示连接失败?
|
||||
|
||||
检查项:
|
||||
|
||||
* 网络连接是否正常
|
||||
* API 密钥是否正确
|
||||
* 环境变量是否设置正确
|
||||
* 余额是否充足
|
||||
|
||||
### CodeX 和 Claude Code 的令牌不通用?
|
||||
|
||||
是的,不同工具需要不同的令牌组:
|
||||
|
||||
* Claude Code: 使用 Claude Code 令牌组
|
||||
* CodeX: 使用 "codex测试" 令牌组
|
||||
* Gemini CLI: 使用 Gemini 令牌组
|
||||
|
||||
请在 IkunCode 平台创建对应的专用令牌。
|
||||
|
||||
## 计费相关
|
||||
|
||||
### 如何计费?
|
||||
|
||||
* 按实际使用量计费
|
||||
* 不同模型价格不同
|
||||
* 详细计费规则请查看控制台
|
||||
|
||||
### 余额不足会怎样?
|
||||
|
||||
* 服务会暂停
|
||||
* 请及时充值以继续使用
|
||||
* 充值后立即恢复服务
|
||||
|
||||
### 支持退款吗?
|
||||
|
||||
* 未使用的余额可以申请退款
|
||||
* 已使用的部分不支持退款
|
||||
* 具体政策请咨询客服
|
||||
|
||||
## 技术问题
|
||||
|
||||
### 代码会被保存吗?
|
||||
|
||||
不会。我们不会存储您的代码内容,仅转发请求和响应。
|
||||
|
||||
### 是否支持企业使用?
|
||||
|
||||
支持。企业用户可以:
|
||||
|
||||
* 联系客服获取企业方案
|
||||
* 支持大额充值和发票
|
||||
* 可能享受优惠价格
|
||||
|
||||
### 如何获得技术支持?
|
||||
|
||||
请查看[售前售后](</support/after-sales>)页面获取联系方式。
|
||||
|
||||
## 更多问题
|
||||
|
||||
### 遇到技术难题?
|
||||
|
||||
如果遇到启动失败、报错、超时等技术问题,请查看:
|
||||
|
||||
👉 **[疑难杂症排查指南](</support/troubleshooting>)** \- 详细的错误排查和解决方案
|
||||
|
||||
### 仍未解决?
|
||||
|
||||
如果上述问题没有解决您的疑问,请:
|
||||
|
||||
* 加入 Telegram 群组:<https://t.me/ikuncode>
|
||||
* 查看[售前售后](</support/after-sales>)联系客服
|
||||
249
apidoc/support/troubleshooting.md
Normal file
249
apidoc/support/troubleshooting.md
Normal file
@ -0,0 +1,249 @@
|
||||
# 疑难杂症排查指南
|
||||
|
||||
本文档汇总了 Claude Code、CodeX、Gemini CLI 等 AI 编程工具的常见问题和解决方案。
|
||||
|
||||
## 🔍 服务状态查看
|
||||
|
||||
在排查问题前,建议先查看服务状态:
|
||||
|
||||
**服务分组状态页** :<https://status.ikuncode.cc/>
|
||||
|
||||
* * *
|
||||
|
||||
## 一、Claude Code 启动时跳登录
|
||||
|
||||
### 问题描述
|
||||
|
||||
启动 Claude Code 时,反复弹出登录界面。
|
||||
|
||||
### 解决方案
|
||||
|
||||
#### 方案一:使用 CC-Switch 跳过功能
|
||||
|
||||
打开 CC-Switch,进入「设置」-「通用」,在「窗口行为」中开启「跳过初次安装确认」开关,即可绕过反复弹出的登录界面。
|
||||
|
||||
详细步骤参见:[CC-Switch 初始化设置](</tools/cc-switch#第一步:初始化设置>)
|
||||
|
||||
#### 方案二:手动修改配置文件
|
||||
|
||||
参考教程:<https://www.cnblogs.com/gordonMlxg/articles/19103691>
|
||||
|
||||
* * *
|
||||
|
||||
## 四、API Connect Error 排查
|
||||
|
||||
### 排查方向
|
||||
|
||||
1. **本地网络异常**
|
||||
|
||||
* 检查网络连接是否正常
|
||||
* 尝试访问其他网站验证网络
|
||||
2. **代理/梯子不稳定**
|
||||
|
||||
* 检查代理配置
|
||||
* 尝试切换代理节点
|
||||
|
||||
### 建议
|
||||
|
||||
👉 **尝试直接使用直连网络**
|
||||
|
||||
关闭代理后测试是否恢复正常。
|
||||
|
||||
* * *
|
||||
|
||||
## 八、CC 上下文过大导致异常
|
||||
|
||||
### 问题表现
|
||||
|
||||
对话中出现异常错误,通常与上下文过大有关。
|
||||
|
||||
### 解决方案
|
||||
|
||||
1. **新建会话**
|
||||
|
||||
* 开启新的对话,清空上下文
|
||||
2. **查看 Token 分布**
|
||||
|
||||
/context
|
||||
|
||||
1
|
||||
|
||||
查看当前上下文的 Token 使用情况
|
||||
|
||||
3. **关闭自动压缩**
|
||||
|
||||
* 关闭 Auto Compress(自动压缩)功能
|
||||
* 手动控制上下文大小
|
||||
|
||||
* * *
|
||||
|
||||
## 九、Request Timed Out(请求超时)
|
||||
|
||||
### 可能原因
|
||||
|
||||
1. 本地网络连接问题
|
||||
2. 代理或梯子状态不稳定
|
||||
3. 服务端负载过高
|
||||
|
||||
### 解决方案
|
||||
|
||||
* 检查本地网络连接
|
||||
* 检查代理或梯子状态
|
||||
* 必要时尝试直连网络
|
||||
* 查看[服务状态页](<https://status.ikuncode.cc/status/api>)确认服务可用性
|
||||
|
||||
* * *
|
||||
|
||||
## 十、API Error 503
|
||||
|
||||
### 错误说明
|
||||
|
||||
当前分组服务不可用。
|
||||
|
||||
### 解决方案
|
||||
|
||||
1. 切换至其他可用服务分组
|
||||
2. 通过状态页确认分组状态
|
||||
|
||||
**服务状态查看** :<https://status.ikuncode.cc/status/api>
|
||||
|
||||
* * *
|
||||
|
||||
## 十一、Gemini CLI 报错 400
|
||||
|
||||
### 问题说明
|
||||
|
||||
当前会话异常,通常是会话状态错误导致。
|
||||
|
||||
### 解决方案
|
||||
|
||||
直接重开会话即可解决。
|
||||
|
||||
* * *
|
||||
|
||||
## 十二、Claude Code 2.0.73 版本内容割裂
|
||||
|
||||
### 问题说明
|
||||
|
||||
在 2.0.73 版本中出现对话/内容割裂问题。
|
||||
|
||||
### 解决方案:回退版本
|
||||
|
||||
bash
|
||||
|
||||
|
||||
npm install -g @anthropic-ai/claude-code@2.0.72
|
||||
|
||||
1
|
||||
|
||||
回退到稳定的 2.0.72 版本。
|
||||
|
||||
* * *
|
||||
|
||||
## 十三、如何关闭 Claude Code 自动更新
|
||||
|
||||
### 问题描述
|
||||
|
||||
不希望 Claude Code 自动更新到新版本。
|
||||
|
||||
### 解决方案
|
||||
|
||||
在 `settings.json` 中添加以下环境变量:
|
||||
|
||||
json
|
||||
|
||||
|
||||
{
|
||||
"env": {
|
||||
"DISABLE_AUTOUPDATER": "1"
|
||||
}
|
||||
}
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
或在系统环境变量中设置:
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# macOS/Linux
|
||||
export DISABLE_AUTOUPDATER=1
|
||||
|
||||
# Windows PowerShell
|
||||
$Env:DISABLE_AUTOUPDATER = "1"
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
* * *
|
||||
|
||||
## 🔧 排查技巧总结
|
||||
|
||||
### 快速诊断流程
|
||||
|
||||
1. ✅ 查看[服务状态页](<https://status.ikuncode.cc/status/api>)
|
||||
2. ✅ 检查环境变量配置
|
||||
3. ✅ 验证令牌是否有效
|
||||
4. ✅ 检查网络和代理状态
|
||||
5. ✅ 查看 Token 余额
|
||||
6. ✅ 尝试重新开启会话
|
||||
|
||||
### 常用调试命令
|
||||
|
||||
#### Claude Code
|
||||
|
||||
bash
|
||||
|
||||
|
||||
/status # 查看当前会话状态
|
||||
/context # 查看上下文 Token 使用
|
||||
/clear # 清空当前会话
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
### 环境变量检查
|
||||
|
||||
#### Windows
|
||||
|
||||
powershell
|
||||
|
||||
|
||||
# 查看所有 ANTHROPIC 相关变量
|
||||
Get-ChildItem Env: | Where-Object {$_.Name -like "*ANTHROPIC*"}
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### macOS/Linux
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 查看所有 ANTHROPIC 相关变量
|
||||
env | grep ANTHROPIC
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
* * *
|
||||
|
||||
## 📮 获取帮助
|
||||
|
||||
如果以上方法都无法解决您的问题,请:
|
||||
|
||||
* 📧 查看[售前售后](</support/after-sales>)联系客服
|
||||
* 💬 加入 Telegram 群组:<https://t.me/ikuncode>
|
||||
* 📖 查看[常见问题 FAQ](</support/faq>)
|
||||
|
||||
* * *
|
||||
|
||||
_本文档持续更新中,如有新的疑难杂症欢迎反馈..._
|
||||
162
apidoc/tools/cc-switch.md
Normal file
162
apidoc/tools/cc-switch.md
Normal file
@ -0,0 +1,162 @@
|
||||
# CC-Switch 快速配置工具
|
||||
|
||||
**All-in-One AI CLI 管理器 - 桌面应用程序**
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
GitHub 发布页| [cc-switch/releases](<https://github.com/farion1231/cc-switch/releases>)
|
||||
CC-Switch 文档站| [ccswitch.lovable.app](<https://ccswitch.lovable.app/>)
|
||||
|
||||
## 🎯 工具介绍
|
||||
|
||||
CC-Switch 是一款跨平台桌面应用程序,统一管理 Claude Code、Codex 和 Gemini CLI 三大 AI 编程工具。通过直观的图形界面,实现配置切换、MCP 服务器管理、系统提示和 Claude Skills 管理。
|
||||
|
||||
💡 核心功能
|
||||
|
||||
• 一键切换不同 AI 工具的提供商配置 • API 端点速度测试与质量指示器 • 多预设系统提示管理 • MCP 服务器统一架构管理 • Claude Skills 发现与安装系统 • 配置备份/恢复(自动保留最近10个) • 深度链接协议支持(`ccswitch://`) • 环境变量冲突检测
|
||||
|
||||

|
||||
|
||||
## 📦 安装方法
|
||||
|
||||
### 🖥️ Windows 平台
|
||||
|
||||
#### 方法一:MSI 安装器(推荐)
|
||||
|
||||
1. 访问项目发布页:<https://github.com/farion1231/cc-switch/releases>
|
||||
2. 下载最新版本的 `.msi` 安装器
|
||||
3. 运行安装器,按照向导完成安装
|
||||
4. 安装完成后从开始菜单启动 CC-Switch
|
||||
|
||||
#### 方法二:便携版(无需安装)
|
||||
|
||||
1. 下载 `.zip` 便携版压缩包
|
||||
2. 解压到任意目录
|
||||
3. 运行 `cc-switch.exe` 即可使用
|
||||
|
||||
### 🍏 macOS 平台
|
||||
|
||||
#### 推荐方式:Homebrew 安装
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 添加 tap 源
|
||||
brew tap farion1231/ccswitch
|
||||
|
||||
# 安装 cc-switch
|
||||
brew install --cask cc-switch
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
|
||||
#### 手动安装
|
||||
|
||||
1. 访问 [Releases 页面](<https://github.com/farion1231/cc-switch/releases>)
|
||||
2. 下载 `.dmg` 安装包
|
||||
3. 打开 DMG 文件,将 CC-Switch 拖入应用程序文件夹
|
||||
4. 从启动台或应用程序文件夹启动
|
||||
|
||||
### 🐧 Linux 平台
|
||||
|
||||
#### Debian/Ubuntu 系列(推荐)
|
||||
|
||||
bash
|
||||
|
||||
|
||||
sudo dpkg -i cc-switch_*.deb
|
||||
sudo apt-get install -f # 修复依赖
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### AppImage 通用版本
|
||||
|
||||
bash
|
||||
|
||||
|
||||
chmod +x cc-switch_*.AppImage
|
||||
./cc-switch_*.AppImage
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
#### Arch Linux(AUR)
|
||||
|
||||
bash
|
||||
|
||||
|
||||
paru -S cc-switch-bin
|
||||
# 或使用 yay
|
||||
yay -S cc-switch-bin
|
||||
|
||||
1
|
||||
2
|
||||
3
|
||||
|
||||
## 🚀 快速开始
|
||||
|
||||
### 第一步:初始化设置
|
||||
|
||||
打开 CC-Switch,进入「设置」页面,在「通用」标签下将「窗口行为」中的所有开关全部打开,确保自启动、Claude Code 插件集成、托盘最小化等功能正常生效。
|
||||
|
||||

|
||||
|
||||
💡 推荐配置
|
||||
|
||||
建议将「窗口行为」中的所有开关全部启用,以获得最佳使用体验:开机自启、静默启动、应用到 Claude Code 插件、跳过初次安装确认、关闭时最小化到托盘。
|
||||
|
||||
### 第二步:添加提供商配置
|
||||
|
||||
1. 点击右上角的加号按钮来添加提供商(Claude/Gemini)
|
||||
|
||||

|
||||
|
||||
💡 Gemini 用户
|
||||
|
||||
如果使用的是 Gemini CLI,请在平台创建**对应的** 令牌,而非 Claude 分组。
|
||||
|
||||
2. 点击右上角的加号按钮来添加提供商(Codex)
|
||||
|
||||

|
||||
|
||||
3. 点击「保存」完成配置
|
||||
|
||||
⚠️ 重要提示
|
||||
|
||||
不同的AI工具(Claude Code、Codex、Gemini CLI)需要不同的令牌组配置。 请在[监测站](<https://status.ikuncode.cc/>)中选择合适的分组创建令牌。
|
||||
|
||||
### 第三步:切换提供商
|
||||
|
||||
1. 在提供商列表中选择要使用的配置
|
||||
2. 点击「启用」按钮
|
||||
3. **或** 使用系统托盘图标进行即时切换
|
||||
|
||||
**系统托盘快速切换:**
|
||||
|
||||
* 右键点击系统托盘中的 CC-Switch 图标
|
||||
* 从菜单中直接选择要切换的提供商
|
||||
* 配置立即生效(Claude Code支持热重载,其它的可能需要重新启动)
|
||||
|
||||
### 第四步:应用配置
|
||||
|
||||
切换配置后,关闭并重新启动对应的 AI 工具即可自动应用新配置。
|
||||
|
||||
## 📖 完整文档
|
||||
|
||||
更多详细配置和高级功能,请参阅 [CC-Switch 官方完整文档](<https://www.ccswitch.io/zh/docs?section=getting-started>)。
|
||||
|
||||
## 🔗 项目资源
|
||||
|
||||
* **GitHub 仓库** :<https://github.com/farion1231/cc-switch>
|
||||
* **问题反馈** :[GitHub Issues](<https://github.com/farion1231/cc-switch/issues>)
|
||||
* **最新版本** :[Releases 页面](<https://github.com/farion1231/cc-switch/releases>)
|
||||
|
||||
🎉 开始使用!
|
||||
|
||||
现在您可以使用 CC-Switch 轻松管理多个 AI 编程工具的配置了。 享受高效的开发体验!
|
||||
62
apidoc/tools/claude-code-hub.md
Normal file
62
apidoc/tools/claude-code-hub.md
Normal file
@ -0,0 +1,62 @@
|
||||
# Claude Code Hub (CCH)
|
||||
|
||||
**团队级多供应商 AI Coding 代理调度平台**
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
资源| 地址
|
||||
---|---
|
||||
官网| [claude-code-hub.app](<https://claude-code-hub.app/>)
|
||||
官方文档| [claude-code-hub.app/docs](<https://claude-code-hub.app/docs>)
|
||||
GitHub| [ding113/claude-code-hub](<https://github.com/ding113/claude-code-hub>)
|
||||
|
||||
## 🎯 工具介绍
|
||||
|
||||
Claude Code Hub (CCH) 是一个服务器部署的多租户 AI Coding 工具调度平台,帮助团队统一管理 Claude、Codex、Gemini 等多家 AI 服务商,实现智能负载均衡与自动故障转移。
|
||||
|
||||
💡 适用场景
|
||||
|
||||
* **敏捷开发团队** :多人共用 AI 工具,需要统一管理和用量追踪
|
||||
* **AI 驱动开发团队** :重度依赖 AI Coding,需要高可用和自动故障转移
|
||||
* **创业公司** :预算有限,需要精细的成本控制和多维限流
|
||||
* **中小软件公司** :需要合规审计、访问控制和完整日志
|
||||
|
||||
## ✨ 核心功能
|
||||
|
||||
* **智能负载均衡** :权重 + 优先级 + 分组调度,内置熔断保护与最多 3 次自动故障转移
|
||||
* **多供应商管理** :同时接入 Claude、Codex、Gemini、OpenAI Compatible 等多种供应商
|
||||
* **限流与并发控制** :支持 RPM(每分钟请求数)、金额限制(5小时/周/月)、并发 Session 控制
|
||||
* **实时监控与统计** :仪表盘展示调用量、成本、活跃 Session 和供应商健康状态
|
||||
* **Session 管理** :5 分钟上下文缓存,同一会话自动路由到相同供应商,提高缓存命中率
|
||||
* **OpenAI 兼容层** :支持 `/v1/chat/completions` 端点,无缝对接现有工具链
|
||||
|
||||
## 🛠️ 快速部署
|
||||
|
||||
### 一键脚本部署
|
||||
|
||||
bash
|
||||
|
||||
|
||||
# 使用官方部署脚本,5 分钟完成安装
|
||||
curl -fsSL https://claude-code-hub.app/install.sh | bash
|
||||
|
||||
1
|
||||
2
|
||||
|
||||
详细部署文档请参考:[脚本部署指南](<https://claude-code-hub.app/docs/deployment/script>)
|
||||
|
||||
### 客户端接入
|
||||
|
||||
部署完成后,将 Claude Code、Codex 等工具的 API 地址指向 CCH 代理即可使用。
|
||||
|
||||
详细接入文档请参考:[客户端接入指南](<https://claude-code-hub.app/docs/deployment/client-setup>)
|
||||
|
||||
## 常见问题
|
||||
|
||||
### CCH和CCS有什么区别?
|
||||
|
||||
CCH更适合团队内部使用,而CCS更适合个人用户。
|
||||
|
||||
### CCH 和直接使用 API 有什么区别?
|
||||
|
||||
CCH 提供了供应商故障自动切换、负载均衡、用量统计、Session 粘性等团队级功能,单人使用直接配 API 即可,多人协作推荐使用 CCH。
|
||||
Loading…
x
Reference in New Issue
Block a user