![]()  | 
  
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
 
      (SQL Server) Multimodal Input: File DataSee more AI ExamplesDemonstrates sending a request that includes both text and PDF file data for the AI to analyze.
Note: At the time of writing this example,  Note: This example requires Chilkat v11.2.0 or greater. 
 -- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) DECLARE @success int SELECT @success = 0 -- This example assumes the Chilkat API to have been previously unlocked. -- See Global Unlock Sample for sample code. DECLARE @ai int EXEC @hr = sp_OACreate 'Chilkat.Ai', @ai OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END -- The provider can be "openai", "google", or "claude". -- At the time of writing this example, "deepseek", "xai", and "perplexity" do not have the ability to process non-image multimodal inputs. -- Support for additional providers will be added in future versions of Chilkat. EXEC sp_OASetProperty @ai, 'Provider', 'claude' -- Use your provider's API key. EXEC sp_OASetProperty @ai, 'ApiKey', 'MY_API_KEY' -- Choose a model. EXEC sp_OASetProperty @ai, 'Model', 'claude-opus-4-1-20250805' -- Add both text input, and PDF file data. EXEC sp_OAMethod @ai, 'InputAddText', @success OUT, 'What is in this file?' DECLARE @bd int EXEC @hr = sp_OACreate 'Chilkat.BinData', @bd OUT -- We're passing a relative local file path here.. (relative the the app's current working directory) EXEC sp_OAMethod @bd, 'LoadFile', @success OUT, 'qa_data/pdf/shakespeare.pdf' IF @success = 0 BEGIN EXEC sp_OAGetProperty @bd, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @ai EXEC @hr = sp_OADestroy @bd RETURN END -- Provide the filename in the 1st argument. The file extension is important to indicate the type of file. EXEC sp_OAMethod @ai, 'InputAddFileData', @success OUT, 'shakespeare.pdf', @bd, '' -- Ask the AI for text output. EXEC sp_OAMethod @ai, 'Ask', @success OUT, 'text' IF @success = 0 BEGIN EXEC sp_OAGetProperty @ai, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @ai EXEC @hr = sp_OADestroy @bd RETURN END -- Get the text response. DECLARE @sbResponse int EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sbResponse OUT EXEC sp_OAMethod @ai, 'GetOutputTextSb', @success OUT, @sbResponse EXEC sp_OAMethod @sbResponse, 'GetAsString', @sTmp0 OUT PRINT @sTmp0 -- ------------------------------------------------------------- -- The response is in markdown format. -- Also see Markdown to HTML Conversion Examples. -- ------------------------------------------------------------- -- Sample output: -- This PDF file contains a famous quote from William Shakespeare's "Romeo and Juliet". The quote appears twice on the page: -- -- "These violent delights have violent ends -- And in their triumph die, like fire and powder, -- Which as they kiss consume. The sweetest honey -- Is loathsome in his own deliciousness -- And in the taste confounds the appetite. -- Therefore love moderately; long love doth so; -- Too swift arrives as tardy as too slow." -- -- The file also includes a portrait image of William Shakespeare. This particular quote is spoken by Friar Lawrence in the play, warning about the dangers of passionate, -- immoderate love - suggesting that love that burns too intensely tends to burn out quickly, just as fire and gunpowder consume each other when they meet. EXEC @hr = sp_OADestroy @ai EXEC @hr = sp_OADestroy @bd EXEC @hr = sp_OADestroy @sbResponse END GO  | 
  ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.