Мне хотелось бы иметь приложение WPF для подключения к Помощнику, который я создал ранее, и использовать загруженный файл.
Подключаюсь к созданному Ассистенту с помощью кода ниже:
Код: Выделить всё
try
{
var requestData = new
{
assistant_id = assistantId
};
var _httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization = new
AuthenticationHeaderValue("Bearer", OPENAI_API_KEY);
_httpClient.DefaultRequestHeaders.Add("OpenAI-Beta", "assistants=v1");
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(JsonConvert.SerializeObject(requestData), Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync("https://api.openai.com/v1/threads", null);
var responseContent = await response.Content.ReadAsStringAsync();
JObject result = (JObject)JsonConvert.DeserializeObject(responseContent);
return result["id"].ToString();
}
catch (Exception ex)
Я запрашиваю Ассистента с помощью следующего кода:< /p>
Код: Выделить всё
var messageData = new
{
role = "user",
content = questionText
};
var _httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", OPENAI_API_KEY);
_httpClient.DefaultRequestHeaders.Add("OpenAI-Beta", "assistants=v1");
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(JsonConvert.SerializeObject(messageData),Encoding.UTF8, "application/json");
var response = await _httpClient.PostAsync("https://api.openai.com/v1/threads", null);
var responseContent = await response.Content.ReadAsStringAsync();
JObject result = (JObject)JsonConvert.DeserializeObject(responseContent);
var runData = new
{
assistant_id = assistantId
};
content = new StringContent(JsonConvert.SerializeObject(runData), Encoding.UTF8, "application/json");
response = await _httpClient.PostAsync($"https://api.openai.com/v1/threads/{threadId}/runs",content);
responseContent = await response.Content.ReadAsStringAsync();
result = (JObject)JsonConvert.DeserializeObject(responseContent);
return result["id"].ToString();
Код: Выделить всё
var _httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", OPENAI_API_KEY);
_httpClient.DefaultRequestHeaders.Add("OpenAI-Beta", "assistants=v1");
_httpClient.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var response = await _httpClient.GetAsync($"https://api.openai.com/v1/threads/{threadId}/messages");
var responseContent = await response.Content.ReadAsStringAsync();
Root? result = JsonConvert.DeserializeObject(responseContent);
return result.data[^1].content[^1].text.value;
Код: Выделить всё
"id": "msg_6OgK2DOxWI8uyAjJoHpCP1Qg",
"object": "thread.message",
"created_at": 1713269774,
"assistant_id": "asst_xxx",
"thread_id": "thread_5owDiegJh0XQerkQrLVVZnFd",
"run_id": "run_FLiEWzUNQIM3YbJKUL6zT69Y",
"role": "assistant",
"content": [
{
"type": "text",
"text": {
"value": "The uploaded file contains a listing of...",
"annotations": []
}
}
],
"file_ids": [],
"metadata": {}
Я могу не запрашиваю конкретно конкретный элемент из загруженного файла, или если я спрашиваю об этом снова и снова, я все равно получаю один и тот же текст с тем же содержанием, слегка перефразированный.
Аннотации не работают. в любом случае содержать что-либо, только свойство text имеет значение.
Но когда я спрашиваю, какое имя загруженного файла, оно возвращает его правильно. p>
Если я затем запрошу конкретный элемент в загруженном файле, я снова получу такой ответ:
Код: Выделить всё
The document you uploaded seems like a .... dataset. Here are some things I could help you with:
Может быть, мне стоит создать в коде сам Ассистент, загрузить файл и использовать его, а не создавать его на портале OpenAI и просто подключиться к нему? Но я не понимаю, почему последний не работает таким образом, если я могу подключиться к нему и просмотреть загруженный файл в Ассистенте.
Большое спасибо за помощь!
Большое спасибо за помощь!
Большое спасибо! п>
Подробнее здесь: https://stackoverflow.com/questions/783 ... n-response
Мобильная версия