Comments (4)
Can you describe the usage scenario of the function and the specific problem solved?
from chatgpt-next-web.
I have also encountered a similar scenario, and I will describe the specific requirements in detail: It is necessary to add a parameter to control whether the selected model must use a third-party custom interface. For example, I own a third-party proxy interface address (which includes custom features like quotas and other custom functions). This interface address has been implemented and unified all other model interfaces, such as integrating OpenAI, Claude, Gemini, etc., with the unified interface format being OpenAI's standard format. Now when I use the Claude model, I want it to go through my customized third-party proxy interface instead of calling the model's own API. Currently, I have to modify the code in api.ts to meet my needs, and the comments are the modified code.
constructor(provider: ModelProvider = ModelProvider.GPT) {
switch (provider) {
case ModelProvider.GeminiPro:
this.llm = new GeminiProApi();
break;
case ModelProvider.Claude:
this.llm = new ChatGPTApi();
// this.llm = new ClaudeApi();
break;
default:
this.llm = new ChatGPTApi();
}
}
我也碰到过相关场景,我大概描述一下具体的需求:需要增加一个 参数 来控制 选用模型是否强制使用第三方自定义接口
比如我拥有一个第三方代理接口地址(里面自定义了额度等其他自定义功能),这个接口地址已经实现并统一了所有的其他模型接口,比如集成 opnenai、claude、gemini等模型,统一接口格式为openai的标准格式。
现在我调用 claude 模型,我希望走的是我自定义的第三方代理接口而不是调用本身模型相关的API,
当前情况下,我不得不修改 api.ts 里面的这段代码来实现我的需求,注释是修改过的代码
constructor(provider: ModelProvider = ModelProvider.GPT) {
switch (provider) {
case ModelProvider.GeminiPro:
this.llm = new GeminiProApi();
break;
case ModelProvider.Claude:
this.llm = new ChatGPTApi();
// this.llm = new ClaudeApi();
break;
default:
this.llm = new ChatGPTApi();
}
}
from chatgpt-next-web.
如果能实现类似效果的话,也不失为一种解决方案:
constructor(provider: ModelProvider = ModelProvider.GPT) {
//通过环境变量选择按原始路由进行请求,还是按OpenAI的标准格式请求
//readSomeEnvConfig() 是假想的函数
const chatGeminiThroughOpenai = readSomeEnvConfig();
const chatClaudeThroughOpenai = readSomeEnvConfig();
switch (provider) {
case ModelProvider.GeminiPro:
if (chatGeminiThroughOpenai){
this.llm = new ChatGPTApi();
}
else{
this.llm = new GeminiProApi();
}
break;
case ModelProvider.Claude:
if (chatClaudeThroughOpenai){
this.llm = new ChatGPTApi();
}
else{
this.llm = new ClaudeApi();
}
break;
default:
this.llm = new ChatGPTApi();
}
}
from chatgpt-next-web.
Can you describe the usage scenario of the function and the specific problem solved?
As mentioned by the individuals below, there is a request to add a field where one can input the URL of intermediary servers (such as one-api, new-api, etc.) in order to request all models through the URL addresses of these intermediary servers. This includes not only OpenAI's models but also other models like Claude.
from chatgpt-next-web.
Related Issues (20)
- [Feature Request] HOT 1
- [Feature Request] 代码折叠功能完善建议 HOT 1
- [Feature Request] 允许前端设置是否转发请求参数 HOT 1
- [Bug] 讯飞星火无法对话 HOT 9
- Please add document upload (pdf,docx, xls, etc) HOT 3
- [Feature Request] 提供更多显示空间 HOT 1
- [Bug] html的预览咋没了 HOT 2
- [Bug] 希望您能考虑在新版本中让“使用全局设置”选项支持选择GPT-4o、GPT-4和GPT-4o-mini等OpenAI模型。 HOT 1
- [Feature Request] 设想了一些建议,包括模型使用控制,多密码权限等等 HOT 8
- [Feature Request] 能否增加claude模型的OpenAI格式 HOT 5
- [Bug] Button 'View more' is displayed in Chinese despite language is set to English in global settings.
- [Bug] Input box is floating in wrong position on Mobile Edge browser
- [Bug] 每次对话都会重新请求生成一次标题 HOT 7
- [Bug] gemini 对话总结不生效 HOT 5
- [Feature Request] New item in the settings Api HOT 1
- [Bug] The latest version has a ton of bugs and a lot of bad code.
- No need to upload images to your website when using gemini! HOT 5
- [Feature Request] prompt chain
- [Feature Request] 如何查看调用API时实际发出的POST请求? HOT 7
- [Bug] Custom models do not support containing @, such as the claude-3-5-sonnet@20240620 model on Vertex HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chatgpt-next-web.