llm.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. define(['jquery', 'bootstrap', 'backend', 'form'], function ($, undefined, Backend, Form) {
  2. var presets = {
  3. dashscope: {
  4. url: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
  5. vision: 'qwen-vl-max',
  6. text: 'qwen-plus'
  7. },
  8. openai: {
  9. url: 'https://api.openai.com/v1',
  10. vision: 'gpt-4o',
  11. text: 'gpt-4o-mini'
  12. },
  13. moonshot: {
  14. url: 'https://api.moonshot.cn/v1',
  15. vision: 'moonshot-v1-8k-vision-preview',
  16. text: 'moonshot-v1-8k'
  17. },
  18. zhipu: {
  19. url: 'https://open.bigmodel.cn/api/paas/v4',
  20. vision: 'glm-4v',
  21. text: 'glm-4'
  22. },
  23. siliconflow: {
  24. url: 'https://api.siliconflow.cn/v1',
  25. vision: 'Qwen/Qwen2.5-VL-72B-Instruct',
  26. text: 'Qwen/Qwen2.5-7B-Instruct'
  27. },
  28. volcengine: {
  29. url: 'https://ark.cn-beijing.volces.com/api/v3',
  30. vision: '',
  31. text: ''
  32. },
  33. deepseek: {
  34. url: 'https://api.deepseek.com',
  35. vision: '',
  36. text: 'deepseek-chat'
  37. },
  38. custom: {
  39. url: '',
  40. vision: '',
  41. text: ''
  42. }
  43. };
  44. var Controller = {
  45. index: function () {
  46. Form.api.bindevent($("#llm-form"));
  47. $(document).on('change', '#c-provider', function () {
  48. var p = presets[$(this).val()];
  49. if (!p) {
  50. return;
  51. }
  52. if (p.url) {
  53. $('#c-online-url').val(p.url);
  54. }
  55. if (p.vision) {
  56. $('#c-online-vision').val(p.vision);
  57. }
  58. if (p.text) {
  59. $('#c-online-text').val(p.text);
  60. }
  61. });
  62. $('.btn-test-online').on('click', function () {
  63. var btn = $(this);
  64. btn.prop('disabled', true);
  65. Fast.api.ajax({
  66. url: 'ps/llm/testOnline',
  67. data: $('#llm-form').serialize()
  68. }, function () {
  69. btn.prop('disabled', false);
  70. }, function () {
  71. btn.prop('disabled', false);
  72. });
  73. });
  74. $('.btn-test-local').on('click', function () {
  75. var btn = $(this);
  76. btn.prop('disabled', true);
  77. Fast.api.ajax({
  78. url: 'ps/llm/testLocal',
  79. data: $('#llm-form').serialize()
  80. }, function () {
  81. btn.prop('disabled', false);
  82. }, function () {
  83. btn.prop('disabled', false);
  84. });
  85. });
  86. }
  87. };
  88. return Controller;
  89. });