promptgun 0.10.2 → 0.11.1

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 CHANGED
@@ -20,15 +20,16 @@ for await (const chunk of stream) {
20
20
  ```typescript
21
21
  const count /* type: number */ = await ai
22
22
  .chat('How many countries are in the EU')
23
- .toNumber()
23
+ .getNumber()
24
24
  ```
25
- Promptgun will both tell the LLM what shape its output data should be, parse that data to JS types and –if you use Typescript– return the matching Typescript type.
25
+ Promptgun will both tell the LLM what shape its output data should be, parse that data to JS types
26
+ and correctly Typescript-type the output!
26
27
 
27
28
  You can do this for types of any complexity:
28
29
  ```typescript
29
30
  const restaurants /* type: {name: string, address?: string}[] */ = await ai
30
31
  .chat('Give 5 top restaurants in London')
31
- .toArray(o => o
32
+ .getArray(o => o
32
33
  .object(o => o
33
34
  .hasString('name')
34
35
  .canHaveString('address')
@@ -40,7 +41,7 @@ You can also put instructions to the LLM in your type spec:
40
41
  ```typescript
41
42
  const restaurants /* type: {name: string, address: string}[] */ = await ai
42
43
  .chat('Give the top restaurant in London')
43
- .toObject(o => o
44
+ .getObject(o => o
44
45
  .hasString('name')
45
46
  .hasString('description', 'A 50 character description')
46
47
  )
@@ -51,7 +52,7 @@ You can put callbacks on elements of the result data, which get called as they c
51
52
  ```typescript
52
53
  await ai
53
54
  .chat('Give 5 top restaurants in London')
54
- .toArray(d => d
55
+ .getArray(d => d
55
56
  .object(obj => obj
56
57
  .hasString('name')
57
58
  .hasString('address')
@@ -66,7 +67,7 @@ And iterating (not awaiting) any streamed json element simply gives the stream o
66
67
  ```typescript
67
68
  const parsedPartialJsonStream = ai
68
69
  .chat('What are the top 5 restaurants in New York City?')
69
- .toArray(o => o
70
+ .getArray(o => o
70
71
  .object(o => o
71
72
  .hasString('name')
72
73
  .hasString('address')
package/build/index.d.ts CHANGED
@@ -862,13 +862,13 @@ export declare class BasicPrompt<PSArgs> implements AsyncGenerator<string>, Prom
862
862
  catch<TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined): Promise<string | TResult>;
863
863
  finally(onfinally?: (() => void) | null | undefined): Promise<string>;
864
864
  get [Symbol.toStringTag](): string;
865
- to<Json extends AnyJson = AnyJson>(type: (value: EmptyTypeSpec<unknown>) => TypeSpec<Json>): JsonPrompt<PSArgs, Json>;
866
- toBoolean(): JsonPrompt<PSArgs, boolean>;
867
- toString(): JsonPrompt<PSArgs, string>;
868
- toNumber(): JsonPrompt<PSArgs, number>;
869
- toObject<T_obj extends {}>(properties: (arg: TypeMemberSpec<{}>) => TypeMemberSpec<T_obj>): JsonPrompt<PSArgs, T_obj>;
870
- toArray<T_arr extends AnyJson>(element: (arg: EmptyTypeSpec<unknown>) => TypeSpec<T_arr>): JsonPrompt<PSArgs, T_arr[]>;
871
- toAny(): JsonPrompt<PSArgs, AnyJson>;
865
+ get<Json extends AnyJson = AnyJson>(type: (value: EmptyTypeSpec<unknown>) => TypeSpec<Json>): JsonPrompt<PSArgs, Json>;
866
+ getBoolean(): JsonPrompt<PSArgs, boolean>;
867
+ getString(): JsonPrompt<PSArgs, string>;
868
+ getNumber(): JsonPrompt<PSArgs, number>;
869
+ getObject<T_obj extends {}>(properties: (arg: TypeMemberSpec<{}>) => TypeMemberSpec<T_obj>): JsonPrompt<PSArgs, T_obj>;
870
+ getArray<T_arr extends AnyJson>(element: (arg: EmptyTypeSpec<unknown>) => TypeSpec<T_arr>): JsonPrompt<PSArgs, T_arr[]>;
871
+ getAny(): JsonPrompt<PSArgs, AnyJson>;
872
872
  private getResponseAsString;
873
873
  }
874
874