PDF AI Copilot
Aspose.PDF AI Copilot API предназначен для обработки PDF-документов с использованием LLM от различных поставщиков. Этот
API поможет пользователям в создании приложений чат-ботов и интеграции PDF-решений с LLM.
Ключевые особенности
Резюме документов.
Чат с документами.
Получение изображений из документов и предоставление описаний.
Примеры
В настоящее время доступны следующие копилоты:
OpenAI Summary позволяет пользователям генерировать резюме из документов. Он предоставляет удобный способ создания резюме, настраивая такие параметры, как модель, температура, количество токенов, инструкции модели, вложения документов и другие. Копилот может асинхронно генерировать резюме в виде текста, документов и сохранять резюме в различных форматах. Предоставленный демонстрационный код демонстрирует создание клиента OpenAI, настройку параметров копилота и использование SummaryCopilot для генерации и сохранения резюме.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task GetSummary ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
// Create AI client
using ( var openAiClient = Aspose . Pdf . AI . OpenAIClient
. CreateWithApiKey ( ApiKey ) // Create OpenAI client with the API key
//.WithProject("proj_123") // Configure optional parameters
. Build ())
{
// Create copilot options
var options = Aspose . Pdf . AI . OpenAISummaryCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = OpenAIModels.Gpt35Turbo; }) // ...create using delegate
. WithTemperature ( 0.5 ) // Configure other optional parameters
. WithDocument ( "SampleDocument.pdf" ); // .WithDocument methods allows to add text, pdf and paths to documents
//.WithDocuments(new List<Aspose.Pdf.AI.TextDocument> { new Aspose.Pdf.AI.TextDocument() }); // .WithDocuments methods allows to add text, pdf and path collections
// Create summary copilot
Aspose . Pdf . AI . ISummaryCopilot summaryCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateSummaryCopilot ( openAiClient , options );
// Get summary text
string summaryText = await summaryCopilot . GetSummaryAsync ();
// Get summary document
Aspose . Pdf . Document summaryDocument = await summaryCopilot . GetSummaryDocumentAsync ();
// Get summary document with page info
Aspose . Pdf . Document summaryDocumentWithPageInfo = await summaryCopilot . GetSummaryDocumentAsync ( new Aspose . Pdf . PageInfo ());
// Save PDF document
await summaryCopilot . SaveSummaryAsync ( dataDir + "Summary_out.pdf" );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task GetSummary ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
// Create AI client
using var openAiClient = Aspose . Pdf . AI . OpenAIClient
. CreateWithApiKey ( ApiKey ) // Create OpenAI client with the API key
//.WithProject("proj_123") // Configure optional parameters
. Build ();
// Create copilot options
var options = Aspose . Pdf . AI . OpenAISummaryCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = OpenAIModels.Gpt35Turbo; }) // ...create using delegate
. WithTemperature ( 0.5 ) // Configure other optional parameters
. WithDocument ( "SampleDocument.pdf" ); // .WithDocument methods allows to add text, pdf and paths to documents
//.WithDocuments(new List<Aspose.Pdf.AI.TextDocument> { new Aspose.Pdf.AI.TextDocument() }); // .WithDocuments methods allows to add text, pdf and path collections
// Create summary copilot
Aspose . Pdf . AI . ISummaryCopilot summaryCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateSummaryCopilot ( openAiClient , options );
// Get summary text
string summaryText = await summaryCopilot . GetSummaryAsync ();
// Get summary document
Aspose . Pdf . Document summaryDocument = await summaryCopilot . GetSummaryDocumentAsync ();
// Get summary document with page info
Aspose . Pdf . Document summaryDocumentWithPageInfo = await summaryCopilot . GetSummaryDocumentAsync ( new Aspose . Pdf . PageInfo ());
// Save PDF document
await summaryCopilot . SaveSummaryAsync ( dataDir + "Summary_out.pdf" );
}
OpenAI Chat — это ИИ копилот, предназначенный для взаимодействия с документами в чате. Он облегчает генерацию ответов на запросы пользователей и управление контекстом. Пользователи могут настраивать параметры копилота, такие как модель, температура, количество токенов, инструкции модели, вложения документов и другие. Копилот может предоставлять ответы на один или несколько запросов, сохранять ответы в различных форматах, сохранять и удалять контекст.
Предоставленный код демонстрирует создание клиента OpenAI, настройку параметров ChatCopilot и использование ChatCopilot для взаимодействия с запросами пользователей и управления контекстом.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task ChatWithDocument ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
// Create AI client
using ( var openAiClient = Aspose . Pdf . AI . OpenAIClient
. CreateWithApiKey ( ApiKey ) // Create OpenAI client with the API key
//.WithProject("proj_123") // Configure optional parameters
//.WithOrganization("org_123")
. Build ()) // Build
{
// Create copilot options
var options = Aspose . Pdf . AI . OpenAIChatCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = OpenAIModels.Gpt35Turbo; }) // ...create using delegate
. WithModel ( Aspose . Pdf . AI . OpenAIModels . Gpt35Turbo ) // Configure other optional parameters
. WithTemperature ( 0.5 )
. WithTopP ( 1 )
//.WithContextBackupJsonPath("ContextBackup.json") // Supply context backup to resume the conversation session
//.WithRestoreContextFromBackup(true) // If set to true, the context will be restored
. WithDocument ( dataDir + "SampleDocument.pdf" ); // Attach documents using .WithDocument(s) methods allows to add text, pdf and paths to documents
// Create summary copilot
Aspose . Pdf . AI . IChatCopilot chatCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateChatCopilot ( openAiClient , options );
// Get response on a user query
string copilotResponse1 = await chatCopilot . GetResponseAsync ( "Summarize this document." );
// Get response on a list of queries
string copilotResponse2 = await chatCopilot . GetResponseAsync ( new List < string >
{
"What is the subject of this document?" ,
"How many words in it?"
});
// Save PDF document
await chatCopilot . SaveResponseAsync ( "Summarize this document." , dataDir + "ResponseDocument1_out.pdf" );
// Save PDF document
await chatCopilot . SaveResponseAsync ( new List < string >
{
"What is the subject of this document?" ,
"How many words in it?"
},
dataDir + "ResponseDocument2_out.pdf" );
// Save context (ids of assistant, thread, documents)
await chatCopilot . SaveContextAsync ( dataDir + "ContextBackup.json" );
// Deletes the context
await chatCopilot . DeleteContextAsync ();
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task ChatWithDocument ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
// Create AI client
using var openAiClient = Aspose . Pdf . AI . OpenAIClient
. CreateWithApiKey ( ApiKey ) // Create OpenAI client with the API key
//.WithProject("proj_123") // Configure optional parameters
//.WithOrganization("org_123")
. Build (); // Build
// Create copilot options
var options = Aspose . Pdf . AI . OpenAIChatCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = OpenAIModels.Gpt35Turbo; }) // ...create using delegate
. WithModel ( Aspose . Pdf . AI . OpenAIModels . Gpt35Turbo ) // Configure other optional parameters
. WithTemperature ( 0.5 )
. WithTopP ( 1 )
//.WithContextBackupJsonPath("ContextBackup.json") // Supply context backup to resume the conversation session
//.WithRestoreContextFromBackup(true) // If set to true, the context will be restored
. WithDocument ( dataDir + "SampleDocument.pdf" ); // Attach documents using .WithDocument(s) methods allows to add text, pdf and paths to documents
// Create summary copilot
Aspose . Pdf . AI . IChatCopilot chatCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateChatCopilot ( openAiClient , options );
// Get response on a user query
string copilotResponse1 = await chatCopilot . GetResponseAsync ( "Summarize this document." );
// Get response on a list of queries
string copilotResponse2 = await chatCopilot . GetResponseAsync ( new List < string >
{
"What is the subject of this document?" ,
"How many words in it?"
});
// Save summary as PDF document
await chatCopilot . SaveResponseAsync ( "Summarize this document." , dataDir + "ResponseDocument1_out.pdf" );
// Save summary as PDF document
await chatCopilot . SaveResponseAsync ( new List < string >
{
"What is the subject of this document?" ,
"How many words in it?"
},
dataDir + "ResponseDocument2_out.pdf" );
// Save context (ids of assistant, thread, documents)
await chatCopilot . SaveContextAsync ( dataDir + "ContextBackup.json" );
// Deletes the context
await chatCopilot . DeleteContextAsync ();
}
OpenAI Image Description — это ИИ копилот, предназначенный для генерации описаний изображений изображений внутри PDF-документов, а также отдельных файлов изображений. Пользователи могут настраивать параметры копилота, такие как модель, температура, количество токенов, инструкции модели, вложения документов и другие. Копилот предоставляет возможность получать описания изображений для всех прикрепленных документов сразу.
Предоставленный фрагмент кода демонстрирует создание клиента OpenAI, настройку параметров ImageDescriptionCopilot и использование копилота для получения описаний изображений для прикрепленных документов. Кроме того, есть метод расширения, который позволяет добавлять описания изображений к изображениям в прикрепленных документах и сохранять новые документы в указанной директории.
OpenAI OCR — это ИИ копилот, предназначенный для извлечения текста из отсканированных документов и изображений. Пользователи могут настраивать параметры копилота, такие как модель, температура, количество токенов, инструкции модели, добавлять документы и другие.
Предоставленный фрагмент кода демонстрирует создание клиента OpenAI, настройку параметров OpenAIOcrCopilotOptions
и использование копилота для получения текста из отсканированных документов и изображений.
Llama Chat позволяет создать клиента для отправки запросов к API чата Llama.
Llama Summary позволяет клиенту использоваться для создания Summary Copilot.
.NET Core 3.1
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task GenerateSummary ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
using ( var llamaClient = Aspose . Pdf . AI . LlamaClient
. CreateWithApiKey ( ApiKey ) // Create Llama client with the API key
. Build ())
{
// Create copilot options
var options = Aspose . Pdf . AI . LlamaSummaryCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = LlamaModels.Llama13BChat; }) // ...create using delegate
. WithTemperature ( 0.5 ) // Configure other optional parameters
. WithDocument ( dataDir + "SampleDocument.pdf" ); // .WithDocument methods allow to add text, pdf, and paths to documents
//.WithDocuments(new List<Aspose.Pdf.AI.TextDocument> { new Aspose.Pdf.AI.TextDocument() }); // .WithDocuments methods allow to add text, pdf and path collections
// Create summary copilot
var summaryCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateSummaryCopilot ( llamaClient , options );
// Get summary text
string summaryText = await summaryCopilot . GetSummaryAsync ();
// Get summary document
Aspose . Pdf . Document summaryDocument = await summaryCopilot . GetSummaryDocumentAsync ();
// Get the summary document with page info
Aspose . Pdf . Document summaryDocumentWithPageInfo = await summaryCopilot . GetSummaryDocumentAsync ( new Aspose . Pdf . PageInfo ());
// Save the summary as a PDF document
await summaryCopilot . SaveSummaryAsync ( dataDir + "Llama_out.pdf" );
// Save summary with specified format
await summaryCopilot . SaveSummaryAsync ( dataDir + "Llama_out.docx" , Aspose . Pdf . SaveFormat . DocX );
}
}
.NET 8
// For complete examples and data files, visit https://github.com/aspose-pdf/Aspose.PDF-for-.NET
private static async Task GenerateSummary ()
{
// The path to the documents directory
var dataDir = RunExamples . GetDataDir_AsposePdf_AI ();
using var llamaClient = Aspose . Pdf . AI . LlamaClient
. CreateWithApiKey ( ApiKey ) // Create Llama client with the API key
. Build ();
// Create copilot options
var options = Aspose . Pdf . AI . LlamaSummaryCopilotOptions
. Create () // Create options like this, or...
//.Create(options => { options.Model = LlamaModels.Llama13BChat; }) // ...create using delegate
. WithTemperature ( 0.5 ) // Configure other optional parameters
. WithDocument ( dataDir + "SampleDocument.pdf" ); // .WithDocument methods allow to add text, pdf, and paths to documents
//.WithDocuments(new List<Aspose.Pdf.AI.TextDocument> { new Aspose.Pdf.AI.TextDocument() }); // .WithDocuments methods allow to add text, pdf and path collections
// Create summary copilot
var summaryCopilot = Aspose . Pdf . AI . AICopilotFactory . CreateSummaryCopilot ( llamaClient , options );
// Get summary text
string summaryText = await summaryCopilot . GetSummaryAsync ();
// Get summary document
Aspose . Pdf . Document summaryDocument = await summaryCopilot . GetSummaryDocumentAsync ();
// Get the summary document with page info
Aspose . Pdf . Document summaryDocumentWithPageInfo = await summaryCopilot . GetSummaryDocumentAsync ( new Aspose . Pdf . PageInfo ());
// Save the summary as a PDF document
await summaryCopilot . SaveSummaryAsync ( dataDir + "Llama_out.pdf" );
// Save summary with specified format
await summaryCopilot . SaveSummaryAsync ( dataDir + "Llama_out.docx" , Aspose . Pdf . SaveFormat . DocX );
}