From e1eec66e04a3b5a81332dc48520ef121472fc6e1 Mon Sep 17 00:00:00 2001 From: jialin Date: Thu, 5 Dec 2024 20:53:09 +0800 Subject: [PATCH] fix: text to speech python code --- config/config.ts | 3 +- src/locales/zh-CN/playground.ts | 4 +- .../playground/components/view-tts-code.tsx | 2 +- src/pages/playground/config/view-code.ts | 61 +++++++++++++++++++ 4 files changed, 65 insertions(+), 5 deletions(-) create mode 100644 src/pages/playground/config/view-code.ts diff --git a/config/config.ts b/config/config.ts index 83b0519e..42d409a7e 100644 --- a/config/config.ts +++ b/config/config.ts @@ -14,7 +14,7 @@ const isProduction = env === 'production'; const t = Date.now(); export default defineConfig({ proxy: { - ...proxy('http://192.168.50.4') + ...proxy(process.env.PROXY_HOST) }, history: { type: 'hash' @@ -23,7 +23,6 @@ export default defineConfig({ analyzerMode: 'server', analyzerPort: 8888, openAnalyzer: true, - // generate stats file while ANALYZE_DUMP exist generateStatsFile: false, statsFilename: 'stats.json', logLevel: 'info', diff --git a/src/locales/zh-CN/playground.ts b/src/locales/zh-CN/playground.ts index 966893b6..de6f6739 100644 --- a/src/locales/zh-CN/playground.ts +++ b/src/locales/zh-CN/playground.ts @@ -44,7 +44,7 @@ export default { 'playground.toolbar.compare6Model': '6 模型对比', 'playground.input.holder': '按 / 开始输入', 'playground.input.keyword.holder': '按 / 输入你的查询', - 'playground.input.prompt.holder': '按 / 输入提示', + 'playground.input.prompt.holder': '按 / 输入提示词', 'playground.input.text.holder': '按 / 输入文本', 'playground.compare.apply': '应用', 'playground.compare.applytoall': '应用到所有模型', @@ -76,7 +76,7 @@ export default { 'playground.rerank.rank': '排序', 'playground.rerank.score': '分数', 'playground.rerank.query.holder': '输入查询', - 'playground.image.prompt': '输入提示', + 'playground.image.prompt': '输入提示词', 'playground.audio.textinput': '输入文本', 'playground.audio.texttospeech': '文本转语音', 'playground.audio.speechtotext': '语音转文本', diff --git a/src/pages/playground/components/view-tts-code.tsx b/src/pages/playground/components/view-tts-code.tsx index 00f14614..ce7f526f 100644 --- a/src/pages/playground/components/view-tts-code.tsx +++ b/src/pages/playground/components/view-tts-code.tsx @@ -106,7 +106,7 @@ const ViewCodeModal: React.FC = (props) => { '' ); const params = formatPyParams(payload); - const code = `from pathlib import Path\nfrom openai import OpenAI\n\nclient = OpenAI(\n base_url="${BaseURL}", \n api_key="YOUR_GPUSTACK_API_KEY"\n)\n\nouput_file_path = Path(__file__).parent\nresponse = client.${clientType}(\n${formattedParams}${params})\n${printLog}\nwith open(output_file_path, "wb") as f: + const code = `from pathlib import Path\nfrom openai import OpenAI\n\nclient = OpenAI(\n base_url="${BaseURL}", \n api_key="YOUR_GPUSTACK_API_KEY"\n)\n\noutput_file_path = Path(__file__).parent / "output.${parameters.response_format}"\nresponse = client.${clientType}(\n${formattedParams}${params})\n${printLog}\nwith open(output_file_path, "wb") as f: for chunk in response.iter_bytes(): f.write(chunk) diff --git a/src/pages/playground/config/view-code.ts b/src/pages/playground/config/view-code.ts new file mode 100644 index 00000000..5e3545b6 --- /dev/null +++ b/src/pages/playground/config/view-code.ts @@ -0,0 +1,61 @@ +import _ from 'lodash'; + +const formatCurlArgs = (args: Record, isFormdata?: boolean) => { + if (isFormdata) { + return _.keys(args).reduce((acc: string, key: string) => { + const value = args[key]; + return acc + `-F ${key}="${value}" \\\n`; + }, ''); + } + return `-d "${JSON.stringify(args)}" \\\n`; +}; + +const formatPyParams = (params: Record) => {}; + +export const speechToTextCode = ({ + payload, + api, + parameters +}: Record) => { + const host = window.location.origin; + const curlCode = `curl ${host}}${api} \ +-H "Content-Type: multipart/form-data" \ +-H "Authorization: Bearer $\{YOUR_GPUSTACK_API_KEY}" \ +-F file="@/path/to/file/audio.mp3;type=audio/mpeg" \ +-F model="${parameters.model}" \ +-F language="${parameters.language}"`; + + const pythonCode = `from openai import OpenAI + +audio_file = open("audio.mp3", "rb") +client = OpenAI( + base_url="${host}/v1-openai", + api_key="YOUR_GPUSTACK_API_KEY" +) + +response = client.audio.transcriptions.create( + model="${parameters.model}", + language="${parameters.language}", + file=audio_file +) +print('response:', response.text)`; + + const nodeJsCode = `const fs = require("fs") +const OpenAI = require("openai"); + +const openai = new OpenAI({ + "apiKey": "YOUR_GPUSTACK_API_KEY", + "baseURL": "${host}/v1-openai" +}); + +async function main(){ + const params = { + "model": "faster-whisper-large-v3", + "language": "auto", + "file": fs.createReadStream("audio.mp3") +}; +const response = await openai.audio.transcriptions.create(params); + console.log(response.text); +} +main();`; +};