@@ -87,27 +87,55 @@ export async function callDeepSeekApi(
8787 outputChannel . show ( ) ;
8888 }
8989
90+ let fullResponse = '' ;
91+ let maxAttempts = 5 ;
92+ let attempts = 0 ;
93+ let maxToken = 1024 * 8 ;
94+ let temperature = 0 ;
95+
96+ let systemPromot : OpenAI . ChatCompletionMessageParam = { role : "system" , content : systemContent } ;
97+
98+ if ( modelName . includes ( 'r' ) ) {
99+ temperature = 0.6 ;
100+ systemPromot = { role : "user" , content : systemContent } ;
101+ }
102+
90103 // 构造消息体
91104 let messages_body : OpenAI . ChatCompletionMessageParam [ ] = [ ] ;
92105 if ( Array . isArray ( userContent ) ) {
93- messages_body . push ( { role : 'system' , content : systemContent } ) ;
106+ if ( systemPromot . role === 'user' ) {
107+ userContent [ 0 ] . content = systemPromot . content + "\n\n" + userContent [ 0 ] . content ;
108+ }
109+ else {
110+ messages_body . push ( systemPromot ) ;
111+ }
112+
113+ {
114+ const role = ( userContent [ 0 ] . role === 'user' ) ? 'user' : 'assistant' ;
115+ messages_body . push ( { role, content : userContent [ 0 ] . content } ) ;
116+ }
117+
94118 // 如果 userContent 是数组,按交替方式生成消息
95- for ( let i = 0 ; i < userContent . length ; i ++ ) {
119+ for ( let i = 1 ; i < userContent . length ; i ++ ) {
96120 const role = ( userContent [ i ] . role === 'user' ) ? 'user' : 'assistant' ;
97121 messages_body . push ( { role, content : userContent [ i ] . content } ) ;
98122 }
99123 } else {
124+
125+ if ( systemPromot . role === 'user' ) {
126+ userContent = systemPromot . content + "\n\n" + userContent ;
127+ }
128+ else {
129+ messages_body . push ( systemPromot ) ;
130+ }
131+
100132 // 如果是单个字符串,默认是 'user' 角色
101133 messages_body = [
102- { role : 'system' , content : systemContent } ,
134+ systemPromot ,
103135 { role : 'user' , content : userContent } ,
104136 ] ;
105137 }
106138
107- let fullResponse = '' ;
108- let maxAttempts = 5 ;
109- let attempts = 0 ;
110-
111139 vscode . window . showInformationMessage ( '开始上传DeepSeek API' ) ;
112140
113141 while ( attempts < maxAttempts ) {
@@ -116,8 +144,8 @@ export async function callDeepSeekApi(
116144 model : modelName ,
117145 messages : messages_body ,
118146 stream : streamMode ,
119- max_tokens : 8192 ,
120- temperature : 0
147+ max_tokens : maxToken ,
148+ temperature : temperature
121149 } ) ;
122150 let thinking = false ;
123151
0 commit comments