Skip to content

Commit 2169447

Browse files
committed
Add textLength setting
1 parent d00c227 commit 2169447

13 files changed

+800
-769
lines changed

app/Http/Controllers/AiTeacherController.php

+17-3
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
namespace App\Http\Controllers;
44

5-
use Illuminate\Http\Request;
5+
use App\Http\Requests\AiTeacherRequest;
6+
use Illuminate\Support\Facades\Validator;
67
use TeaRiot\YandexGpt\Cloud;
78
use TeaRiot\YandexGpt\Methods\Completion;
89

@@ -25,12 +26,13 @@ public function index()
2526
return view('ai-teacher');
2627
}
2728

28-
public function send(Request $request)
29+
public function send(AiTeacherRequest $request)
2930
{
3031
$messages = $request->get('messages');
3132

3233
if (! empty($messages) and is_array($messages)) {
33-
$completion = new Completion();
34+
$completion = new Completion;
35+
$completion->setMaxTokens(2000);
3436

3537
$context = [
3638
[
@@ -46,6 +48,17 @@ public function send(Request $request)
4648
'text' => $message['text'],
4749
];
4850
} else {
51+
$validator = Validator::make($message, [
52+
'text' => 'required|max:2000',
53+
]);
54+
55+
if ($validator->fails()) {
56+
return response()->json([
57+
'code' => 413,
58+
'message' => 'Payload Too Large',
59+
], 413);
60+
}
61+
4962
$context[] = [
5063
'role' => $completion::USER,
5164
'text' => $message['text'],
@@ -55,6 +68,7 @@ public function send(Request $request)
5568

5669
$completion->setModelUri($this->folderId, 'yandexgpt-lite/latest')
5770
->setTextMaxCount(21)
71+
->setTextLength(20000)
5872
->addText($context);
5973

6074
$result = $this->yandexGpt->request($completion);
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
<?php
2+
3+
namespace App\Http\Requests;
4+
5+
use Illuminate\Foundation\Http\FormRequest;
6+
7+
class AiTeacherRequest extends FormRequest
8+
{
9+
/**
10+
* Determine if the user is authorized to make this request.
11+
*/
12+
public function authorize(): bool
13+
{
14+
return true;
15+
}
16+
17+
/**
18+
* Get the validation rules that apply to the request.
19+
*
20+
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array<mixed>|string>
21+
*/
22+
public function rules(): array
23+
{
24+
return [
25+
'messages' => 'required|array',
26+
];
27+
}
28+
}

0 commit comments

Comments
 (0)