kopia lustrzana https://github.com/transitive-bullshit/chatgpt-api
84 wiersze
2.2 KiB
TypeScript
84 wiersze
2.2 KiB
TypeScript
![]() |
import 'dotenv/config'
|
|||
![]() |
import { OpenAIClient } from 'openai-fetch'
|
|||
![]() |
import { z } from 'zod'
|
|||
|
|
|||
![]() |
import { Agentic } from '../src'
|
|||
|
|
|||
|
async function main() {
|
|||
|
const openai = new OpenAIClient({ apiKey: process.env.OPENAI_API_KEY! })
|
|||
|
const $ = new Agentic({ openai })
|
|||
![]() |
|
|||
|
const ex0 = await $.gpt4(`give me a single boolean value: `)
|
|||
|
.output(z.boolean())
|
|||
![]() |
// .retry({ attempts: 3 })
|
|||
![]() |
.call()
|
|||
|
|
|||
|
// LLM
|
|||
|
// give me a single boolean value
|
|||
|
// given an output as a boolean.
|
|||
|
// true/false
|
|||
|
|
|||
![]() |
const ex1 = await $.gpt4('give me a list of character names from star wars')
|
|||
|
.output(z.array(z.string().nonempty()))
|
|||
![]() |
// .stream()
|
|||
|
.call()
|
|||
![]() |
|
|||
|
const ex2 = await $.gpt4(`Summarize the following text: {{text}}`)
|
|||
|
.output(z.string().nonempty())
|
|||
|
.input(z.object({ text: z.string().nonempty() }))
|
|||
|
.call({
|
|||
|
text: 'The quick brown fox jumps over the lazy dog.'
|
|||
|
})
|
|||
|
|
|||
![]() |
// const ext22 = await $.gpt4({ temperature: 0 }).call({
|
|||
|
// messages: [
|
|||
|
// // TEST
|
|||
|
// ]
|
|||
|
// })
|
|||
![]() |
|
|||
|
const ex3 = await $.gpt4({
|
|||
|
temperature: 0,
|
|||
|
messages: [
|
|||
|
{
|
|||
|
role: 'system',
|
|||
|
content: 'You extract movie titles from text.'
|
|||
|
},
|
|||
|
{
|
|||
|
role: 'user',
|
|||
|
content: `Extract the movie title from the following text or return 'none' if no movie title is found.`
|
|||
|
}
|
|||
|
]
|
|||
|
})
|
|||
|
.examples([
|
|||
|
{
|
|||
|
input: `Deadpool 2 | Official HD Deadpool's "Wet on Wet" Teaser | 2018`,
|
|||
|
output: `Deadpool 2`
|
|||
|
},
|
|||
|
{
|
|||
|
input: `Jordan Peele Just Became the First Black Writer-Director With a $100M Movie Debut`,
|
|||
|
output: 'none'
|
|||
|
},
|
|||
|
{
|
|||
|
input: 'Joker Officially Rated “R”',
|
|||
|
output: 'Joker'
|
|||
|
},
|
|||
|
{
|
|||
|
input: `Ryan Reynolds’ 'Free Guy' Receives July 3, 2020 Release Date - About a bank teller stuck in his routine that discovers he’s an NPC character in a brutal open world game.`,
|
|||
|
output: 'Free Guy'
|
|||
|
},
|
|||
|
{
|
|||
|
input: 'James Cameron congratulates Kevin Feige and Marvel!',
|
|||
|
output: 'none'
|
|||
|
},
|
|||
|
{
|
|||
|
input:
|
|||
|
'The Cast of Guardians of the Galaxy release statement on James Gunn',
|
|||
|
output: 'Guardians of the Galaxy'
|
|||
|
}
|
|||
|
])
|
|||
|
.output(z.string().nonempty())
|
|||
|
.call()
|
|||
|
}
|
|||
![]() |
|
|||
|
main()
|