Du kannst nicht mehr als 25 Themen auswählen Themen müssen mit entweder einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

model.ts 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import { ITenantInfo } from '@/interfaces/database/knowledge';
  2. import {
  3. IFactory,
  4. IMyLlmValue,
  5. IThirdOAIModelCollection as IThirdAiModelCollection,
  6. } from '@/interfaces/database/llm';
  7. import { IUserInfo } from '@/interfaces/database/userSetting';
  8. import i18n from '@/locales/config';
  9. import userService from '@/services/userService';
  10. import { message } from 'antd';
  11. import { DvaModel } from 'umi';
  12. export interface SettingModelState {
  13. llm_factory: string;
  14. tenantIfo: Nullable<ITenantInfo>;
  15. llmInfo: IThirdAiModelCollection;
  16. myLlmList: Record<string, IMyLlmValue>;
  17. factoryList: IFactory[];
  18. userInfo: IUserInfo;
  19. }
  20. const model: DvaModel<SettingModelState> = {
  21. namespace: 'settingModel',
  22. state: {
  23. llm_factory: '',
  24. tenantIfo: null,
  25. llmInfo: {},
  26. myLlmList: {},
  27. factoryList: [],
  28. userInfo: {} as IUserInfo,
  29. },
  30. reducers: {
  31. updateState(state, { payload }) {
  32. return {
  33. ...state,
  34. ...payload,
  35. };
  36. },
  37. setUserInfo(state, { payload }) {
  38. return {
  39. ...state,
  40. userInfo: payload,
  41. };
  42. },
  43. },
  44. effects: {
  45. *setting({ payload = {} }, { call, put }) {
  46. const { data } = yield call(userService.setting, payload);
  47. const { retcode } = data;
  48. if (retcode === 0) {
  49. message.success(i18n.t('message.modified'));
  50. yield put({
  51. type: 'getUserInfo',
  52. });
  53. }
  54. },
  55. *getUserInfo({ payload = {} }, { call, put }) {
  56. const { data } = yield call(userService.user_info, payload);
  57. const { retcode, data: res } = data;
  58. // const userInfo = {
  59. // avatar: res.avatar,
  60. // name: res.nickname,
  61. // email: res.email,
  62. // };
  63. // authorizationUtil.setUserInfo(userInfo);
  64. if (retcode === 0) {
  65. i18n.changeLanguage(res.language === 'Chinese' ? 'zh' : 'en');
  66. yield put({ type: 'setUserInfo', payload: res });
  67. // localStorage.setItem('userInfo',res.)
  68. }
  69. },
  70. *getTenantInfo({ payload = {} }, { call, put }) {
  71. const { data } = yield call(userService.get_tenant_info, payload);
  72. const { retcode, data: res } = data;
  73. // llm_id 对应chat_id
  74. // asr_id 对应speech2txt
  75. if (retcode === 0) {
  76. res.chat_id = res.llm_id;
  77. res.speech2text_id = res.asr_id;
  78. yield put({
  79. type: 'updateState',
  80. payload: {
  81. tenantIfo: res,
  82. },
  83. });
  84. }
  85. },
  86. *set_tenant_info({ payload = {} }, { call, put }) {
  87. const { data } = yield call(userService.set_tenant_info, payload);
  88. const { retcode } = data;
  89. if (retcode === 0) {
  90. message.success(i18n.t('message.modified'));
  91. yield put({
  92. type: 'getTenantInfo',
  93. });
  94. }
  95. return retcode;
  96. },
  97. *factories_list({ payload = {} }, { call, put }) {
  98. const { data } = yield call(userService.factories_list);
  99. const { retcode, data: res } = data;
  100. if (retcode === 0) {
  101. yield put({
  102. type: 'updateState',
  103. payload: {
  104. factoryList: res,
  105. },
  106. });
  107. }
  108. },
  109. *llm_list({ payload = {} }, { call, put }) {
  110. const { data } = yield call(userService.llm_list, payload);
  111. const { retcode, data: res } = data;
  112. if (retcode === 0) {
  113. yield put({
  114. type: 'updateState',
  115. payload: {
  116. llmInfo: res,
  117. },
  118. });
  119. }
  120. },
  121. *my_llm({ payload = {} }, { call, put }) {
  122. const { data } = yield call(userService.my_llm);
  123. const { retcode, data: res } = data;
  124. if (retcode === 0) {
  125. yield put({
  126. type: 'updateState',
  127. payload: {
  128. myLlmList: res,
  129. },
  130. });
  131. }
  132. },
  133. *set_api_key({ payload = {} }, { call, put }) {
  134. const { data } = yield call(userService.set_api_key, payload);
  135. const { retcode } = data;
  136. if (retcode === 0) {
  137. message.success(i18n.t('message.modified'));
  138. yield put({ type: 'my_llm' });
  139. yield put({ type: 'factories_list' });
  140. yield put({
  141. type: 'updateState',
  142. });
  143. }
  144. return retcode;
  145. },
  146. *add_llm({ payload = {} }, { call, put }) {
  147. const { data } = yield call(userService.add_llm, payload);
  148. const { retcode } = data;
  149. if (retcode === 0) {
  150. message.success(i18n.t('message.modified'));
  151. yield put({ type: 'my_llm' });
  152. yield put({ type: 'factories_list' });
  153. }
  154. return retcode;
  155. },
  156. },
  157. };
  158. export default model;