@@ -187,6 +187,7 @@ var _ = Describe("Echo Dataset", Ordered, func() {
187187 Prompt : theText ,
188188 }
189189 req .SetTokenizedPrompt (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
190+ req .SetTokenizedEchoResponse (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
190191 tokens , finishReason , err := dataset .GetResponseTokens (req )
191192 Expect (err ).ShouldNot (HaveOccurred ())
192193 Expect (tokens .Strings ).Should (Equal (strTokens ))
@@ -199,6 +200,7 @@ var _ = Describe("Echo Dataset", Ordered, func() {
199200 MaxTokens : & maxTokens ,
200201 }
201202 req .SetTokenizedPrompt (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
203+ req .SetTokenizedEchoResponse (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
202204
203205 tokens , finishReason , err := dataset .GetResponseTokens (req )
204206 Expect (err ).ShouldNot (HaveOccurred ())
@@ -212,12 +214,34 @@ var _ = Describe("Echo Dataset", Ordered, func() {
212214 MaxTokens : & maxTokens ,
213215 }
214216 req .SetTokenizedPrompt (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
217+ req .SetTokenizedEchoResponse (& openaiserverapi.Tokenized {Tokens : tokens , Strings : strTokens })
215218
216219 tokens , finishReason , err := dataset .GetResponseTokens (req )
217220 Expect (err ).ShouldNot (HaveOccurred ())
218221 Expect (tokens .Strings ).Should (Equal (strTokens ))
219222 Expect (finishReason ).Should (Equal (common .LengthFinishReason ))
220223 })
224+ It ("should return the last message in chat completion" , func () {
225+ req := & openaiserverapi.ChatCompletionRequest {
226+ Messages : []openaiserverapi.Message {
227+ {Role : openaiserverapi .RoleUser , Content : openaiserverapi.Content {Raw : "user message1" }},
228+ {Role : openaiserverapi .RoleAssistant , Content : openaiserverapi.Content {Raw : "assistant message1" }},
229+ {Role : openaiserverapi .RoleUser , Content : openaiserverapi.Content {Raw : testPrompt }},
230+ },
231+ }
232+ promptTokens , promptStrTokens , err := tokenizer .Encode (req .GetFullPrompt (), "" )
233+ Expect (err ).ShouldNot (HaveOccurred ())
234+ respTokens , resptStrTokens , err := tokenizer .Encode (testPrompt , "" )
235+ Expect (err ).ShouldNot (HaveOccurred ())
236+
237+ req .SetTokenizedPrompt (& openaiserverapi.Tokenized {Tokens : promptTokens , Strings : promptStrTokens })
238+ req .SetTokenizedEchoResponse (& openaiserverapi.Tokenized {Tokens : respTokens , Strings : resptStrTokens })
239+
240+ tokens , _ , err := dataset .GetResponseTokens (req )
241+ Expect (err ).ShouldNot (HaveOccurred ())
242+
243+ Expect (tokens .Strings ).Should (Equal (resptStrTokens ))
244+ })
221245 })
222246
223247 DescribeTable ("should work correctly in echo mode" ,
@@ -235,6 +259,7 @@ var _ = Describe("Echo Dataset", Ordered, func() {
235259 req = & textReq
236260 }
237261 req .SetTokenizedPrompt (& openaiserverapi.Tokenized {Tokens : promptTokens , Strings : promptStrTokens })
262+ req .SetTokenizedEchoResponse (& openaiserverapi.Tokenized {Tokens : promptTokens , Strings : promptStrTokens })
238263
239264 tokens , finishReason , err := dataset .GetResponseTokens (req )
240265 Expect (err ).NotTo (HaveOccurred ())
0 commit comments