| 1 | import * as Neon from "@/Neon"; |
| 2 | import * as Effect from "effect/Effect"; |
| 3 | |
| 4 | export const languageModelProject = Neon.Project("LanguageModelProject", { |
| 5 | region: "aws-us-east-2", |
| 6 | }); |
| 7 | export const languageModelBranch = Effect.gen(function* () { |
| 8 | return yield* Neon.Branch("LanguageModelBranch", { |
| 9 | project: yield* languageModelProject, |
| 10 | }); |
| 11 | }); |
| 12 | export const languageModelGateway = Effect.gen(function* () { |
| 13 | const branch = yield* languageModelBranch; |
| 14 | return yield* Neon.AIGateway("LanguageModelGateway", { |
| 15 | branch, |
| 16 | }); |
| 17 | }); |
| 18 | export const languageModelManagedGateway = Effect.gen(function* () { |
| 19 | const branch = yield* languageModelBranch; |
| 20 | const credential = yield* Neon.Credential("LanguageModelCredential", { |
| 21 | branch, |
| 22 | scopes: ["ai_gateway:invoke"], |
| 23 | }); |
| 24 | return yield* Neon.AIGateway("LanguageModelManagedGateway", { |
| 25 | branch, |
| 26 | credential, |
| 27 | }); |
| 28 | }); |