@quatrain/ai-gemini 1.1.1 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -0
- package/dist/GeminiAdapter.d.ts.map +1 -1
- package/dist/GeminiAdapter.js.map +1 -1
- package/package.json +3 -3
- package/src/GeminiAdapter.ts +22 -0
package/README.md
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# @quatrain/ai-gemini
|
|
2
|
+
|
|
3
|
+
AI adapter for Google Gemini. Integrates the Gemini API into the Quatrain AI ecosystem.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
This package is part of the Quatrain Core monorepo. It provides functionality related to ai adapter for google gemini. integrates the gemini api into the quatrain ai ecosystem.
|
|
8
|
+
|
|
9
|
+
## HOWTO / Usage Examples
|
|
10
|
+
|
|
11
|
+
```typescript
|
|
12
|
+
import { Ai } from '@quatrain/ai'
|
|
13
|
+
import { GeminiAdapter } from '@quatrain/ai-gemini'
|
|
14
|
+
|
|
15
|
+
Ai.registerAdapter(new GeminiAdapter({ apiKey: 'YOUR_API_KEY' }))
|
|
16
|
+
|
|
17
|
+
const response = await Ai.generate('Hello Gemini')
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Conventions & Technical Details
|
|
21
|
+
|
|
22
|
+
- Follows the standard Quatrain architecture patterns.
|
|
23
|
+
- Ensure proper configuration before usage.
|
|
24
|
+
- See the root monorepo documentation for more details on building and testing this package.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiAdapter.d.ts","sourceRoot":"","sources":["../src/GeminiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"GeminiAdapter.d.ts","sourceRoot":"","sources":["../src/GeminiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAK3C,qBAAa,aAAc,SAAQ,iBAAiB;IACjD,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAAO;IACxC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAA;gBAEb,MAAM,EAAE,MAAM;IAQ1B,IAAI,IAAI,IAAI;IAWN,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB5D,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;CAmBpF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GeminiAdapter.js","sourceRoot":"","sources":["../src/GeminiAdapter.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,yCAA2C;
|
|
1
|
+
{"version":3,"file":"GeminiAdapter.js","sourceRoot":"","sources":["../src/GeminiAdapter.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,yCAA2C;AAK3C,MAAa,aAAc,SAAQ,sBAAiB;IACvC,GAAG,GAAuB,IAAI,CAAA;IAC9B,OAAO,CAAQ;IAEzB,YAAY,MAAc;QACvB,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACxB,CAAC;IAKD,IAAI;QACD,IAAI,CAAC,GAAG,GAAG,IAAI,mBAAW,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACvD,CAAC;IASD,KAAK,CAAC,YAAY,CAAC,MAAc,EAAE,OAAa;QAC7C,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,EAAE,CAAA;QAE1B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,kBAAkB,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACrD,KAAK;YACL,QAAQ,EAAE,MAAM;SAClB,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAA;IAC7B,CAAC;IAWD,KAAK,CAAC,kBAAkB,CAAC,MAAc,EAAE,MAAW,EAAE,OAAa;QAChE,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,IAAI,CAAC,IAAI,EAAE,CAAA;QAE1B,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,kBAAkB,CAAA;QAClD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YACrD,KAAK;YACL,QAAQ,EAAE,MAAM;YAChB,MAAM,EAAE;gBACL,gBAAgB,EAAE,kBAAkB;gBACpC,cAAc,EAAE,MAAM;aACxB;SACH,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;QACtD,CAAC;QAED,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;IACnC,CAAC;CACH;AA/DD,sCA+DC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quatrain/ai-gemini",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"description": "AI adapter for Google Gemini",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
"author": "Quatrain Développement SAS <developers@quatrain.com>",
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"@google/genai": "latest",
|
|
24
|
-
"@quatrain/ai": "^1.1.
|
|
25
|
-
"@quatrain/core": "^1.
|
|
24
|
+
"@quatrain/ai": "^1.1.3",
|
|
25
|
+
"@quatrain/core": "^1.2.5"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@tsconfig/recommended": "^1.0.1",
|
package/src/GeminiAdapter.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { AbstractAiAdapter } from '@quatrain/ai'
|
|
2
2
|
import { GoogleGenAI } from '@google/genai'
|
|
3
3
|
|
|
4
|
+
/**
|
|
5
|
+
* AI Adapter implementation for Google's Gemini models using the official genai SDK.
|
|
6
|
+
*/
|
|
4
7
|
export class GeminiAdapter extends AbstractAiAdapter {
|
|
5
8
|
protected _ai: GoogleGenAI | null = null
|
|
6
9
|
protected _apiKey: string
|
|
@@ -10,10 +13,20 @@ export class GeminiAdapter extends AbstractAiAdapter {
|
|
|
10
13
|
this._apiKey = apiKey
|
|
11
14
|
}
|
|
12
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Initializes the internal GoogleGenAI client with the provided API key.
|
|
18
|
+
*/
|
|
13
19
|
init(): void {
|
|
14
20
|
this._ai = new GoogleGenAI({ apiKey: this._apiKey })
|
|
15
21
|
}
|
|
16
22
|
|
|
23
|
+
/**
|
|
24
|
+
* Sends a textual prompt to the Gemini API and retrieves the generated text response.
|
|
25
|
+
*
|
|
26
|
+
* @param prompt - The instruction or query to send to the model.
|
|
27
|
+
* @param options - Configuration options. Can include a `model` string identifier.
|
|
28
|
+
* @returns The generated response string.
|
|
29
|
+
*/
|
|
17
30
|
async generateText(prompt: string, options?: any): Promise<string> {
|
|
18
31
|
if (!this._ai) this.init()
|
|
19
32
|
|
|
@@ -26,6 +39,15 @@ export class GeminiAdapter extends AbstractAiAdapter {
|
|
|
26
39
|
return response.text || ''
|
|
27
40
|
}
|
|
28
41
|
|
|
42
|
+
/**
|
|
43
|
+
* Instructs the Gemini model to output structured JSON data conforming to a given schema.
|
|
44
|
+
*
|
|
45
|
+
* @param prompt - The instruction or context.
|
|
46
|
+
* @param schema - The expected JSON schema structure.
|
|
47
|
+
* @param options - Additional options including the `model` identifier.
|
|
48
|
+
* @returns The parsed JSON object returned by the model.
|
|
49
|
+
* @throws {Error} If the API does not return valid text.
|
|
50
|
+
*/
|
|
29
51
|
async generateStructured(prompt: string, schema: any, options?: any): Promise<any> {
|
|
30
52
|
if (!this._ai) this.init()
|
|
31
53
|
|