Add support for VolcEngine - the current version supports SDK2 (#885)

- The main idea is to assemble **ak**, **sk**, and **ep_id** into a
dictionary and store it in the database **api_key** field
- I don’t know much about the front-end, so I learned from Ollama, which
may be redundant.

### Configuration method

- model name

- Format requirements: {"VolcEngine model name":"endpoint_id"}
    - For example: {"Skylark-pro-32K":"ep-xxxxxxxxx"}
    
- Volcano ACCESS_KEY
- Format requirements: VOLC_ACCESSKEY of the volcano engine
corresponding to the model

- Volcano SECRET_KEY
- Format requirements: VOLC_SECRETKEY of the volcano engine
corresponding to the model
    
### What problem does this PR solve?

_Briefly describe what this PR aims to solve. Include background context
that will help reviewers understand the purpose of the PR._

### Type of change

- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
yungongzi
2024-05-23 11:15:29 +08:00
committed by GitHub
parent fbd0d74053
commit eb51ad73d6
10 changed files with 315 additions and 8 deletions

View File

@@ -166,6 +166,41 @@ export const useSubmitOllama = () => {
};
};
export const useSubmitVolcEngine = () => {
const loading = useOneNamespaceEffectsLoading('settingModel', ['add_llm']);
const [selectedVolcFactory, setSelectedVolcFactory] = useState<string>('');
const addLlm = useAddLlm();
const {
visible: volcAddingVisible,
hideModal: hideVolcAddingModal,
showModal: showVolcAddingModal,
} = useSetModalState();
const onVolcAddingOk = useCallback(
async (payload: IAddLlmRequestBody) => {
const ret = await addLlm(payload);
if (ret === 0) {
hideVolcAddingModal();
}
},
[hideVolcAddingModal, addLlm],
);
const handleShowVolcAddingModal = (llmFactory: string) => {
setSelectedVolcFactory(llmFactory);
showVolcAddingModal();
};
return {
volcAddingLoading: loading,
onVolcAddingOk,
volcAddingVisible,
hideVolcAddingModal,
showVolcAddingModal: handleShowVolcAddingModal,
selectedVolcFactory,
};
};
export const useHandleDeleteLlm = (llmFactory: string) => {
const deleteLlm = useDeleteLlm();
const showDeleteConfirm = useShowDeleteConfirm();