تم تنفيذ الوظائف:
متطلبات التثبيت الدنيا: SQL Server 2022 ، Visual Studio 2022 (يجب تثبيت SSDT)
use SQLRAG
sp_configure ' show advanced options ' , 1 ;
RECONFIGURE;
sp_configure ' clr enabled ' , 1 ;
RECONFIGURE; هناك عدة طرق للتثبيت:
إذا كنت ترغب في استخدام OpenAifunction ، كان النهج السابق هو إدخال OpenAI_API_Key الفعلي في OpenAifunction.cs. لا يمكن أن يضمن هذا النهج أمان مفتاح API. في هذا الإصدار ، أضفت جدول بيانات dbo.encryptedkeys إلى قاعدة بيانات SQLRAG ، حيث يتم تشفير الجزء الرئيسي من خلال بيانات الاعتماد. يبدو الأمر معقدًا ، لكنني قمت بالفعل بمعالجة جزء الاتصال التلقائي. يحتاج المطور فقط إلى تشفير مفتاح API وكتابته في جدول البيانات من خلال بناء جملة SQL التالي.
use SQLRAG
Declare @cleartext varchar ( 512 ) = ' sk-輸入你的OPENAI_API_KEYAPI KEY '
Declare @encrytext varbinary( 4000 ) = EncryptByCert(Cert_ID( ' SqlRAGCertificate ' ), @cleartext)
INSERT INTO [SQLRAG].[dbo].[EncryptedKeys]
VALUES ( N ' OPENAI_API_KEY ' , N '調用OPENAI所用之API KEY ' ,@encrytext ); بعد ذلك ، تحتاج إلى فك تشفيره من خلال الإعلان الصريح عن بيانات الاعتماد وكلمة المرور المقابلة:
DecryptByCert(Cert_ID( ' SqlRAGCertificate ' ), EncryptByCert(Cert_ID( ' SqlRAGCertificate ' ), @cleartext) , ' P@ssw0rd ' )
إذا كنت مستخدم خدمة Azure Openai ، فأنت بحاجة إلى تشفير مفتاح API ونقطة النهاية وحفظه في
use SQLRAG
Declare @cleartext varchar ( 512 ) = ' *** '
Declare @encrytext varbinary( 4000 ) = EncryptByCert(Cert_ID( ' SqlRAGCertificate ' ), @cleartext)
Declare @cleartext2 varchar ( 512 ) = ' https://***.openai.azure.com '
Declare @encrytext2 varbinary( 4000 ) = EncryptByCert(Cert_ID( ' SqlRAGCertificate ' ), @cleartext2)
Declare @cleartext3 varchar ( 512 ) = ' *** '
Declare @encrytext3 varbinary( 4000 ) = EncryptByCert(Cert_ID( ' SqlRAGCertificate ' ), @cleartext3)
INSERT INTO [SQLRAG].[dbo].[EncryptedKeys]
VALUES ( N ' AZURE_OPENAI_API_KEY ' , N '調用Azure Openai Service 所用之API KEY ' ,@encrytext );
INSERT INTO [SQLRAG].[dbo].[EncryptedKeys]
VALUES ( N ' AZURE_OPENAI_ENDPOINT ' , N '調用Azure Openai Service 所用之endpoint ' ,@encrytext2 );
INSERT INTO [SQLRAG].[dbo].[EncryptedKeys]
VALUES ( N ' OPENAI_API_VERSION ' , N '調用Azure Openai Service 所用之API Version ' ,@encrytext3 );

