Integration nodes with OpenAI API. Added a new contracts:
gpt3(rho:ai:gpt3)
gpt4(rho:ai:gpt4)
dalle3(rho:ai:dalle3)
textToAudio(rho:ai:textToAudio)
Next Rholang can be used for tests using Eval:
new gptAnswer, audio, dalle3Answer,
gpt3(`rho:ai:gpt3`),
gpt4(`rho:ai:gpt4`),
dalle3(`rho:ai:dalle3`),
textToAudio(`rho:ai:textToAudio`),
dumpFile(`rho:ai:dumpFile`), // temporary
stdout(`rho:io:stdout`) in {
gpt3!("Describe an appearance of human-like robot: ", *gptAnswer) |
for(@answer <- gptAnswer) {
stdout!(["GTP3 created a prompt", answer]) |
dalle3!(answer, *dalle3Answer) |
for(@dalle3Answer <- dalle3Answer) {
stdout!(["Dall-e-3 created an image", dalle3Answer])
}
} |
textToAudio!("Hello, I am a robot. Rholang give me a voice!", *audio) |
for(@bytes <- audio) {
dumpFile!("text-to-audio.mp3", bytes)
}
}
Notes
Please make sure that this PR:
[x] is at most 200 lines of code (excluding tests),
Overview
Integration nodes with OpenAI API. Added a new contracts:
rho:ai:gpt3
)rho:ai:gpt4
)rho:ai:dalle3
)rho:ai:textToAudio
)Next Rholang can be used for tests using Eval:
Notes
Please make sure that this PR:
Bors cheat-sheet:
bors r+
runs integration tests and merges the PR (if it's approved),bors try
runs integration tests for the PR,bors delegate+
enables non-maintainer PR authors to run the above.