repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | import { OpenAILLM } from "../llms/openai"; |
| #2 | import { Message } from "../types"; |
| #3 | |
| #4 | const get_image_description = async (image_url: string) => { |
| #5 | const llm = new OpenAILLM({ |
| #6 | apiKey: process.env.OPENAI_API_KEY, |
| #7 | }); |
| #8 | const response = await llm.generateResponse([ |
| #9 | { |
| #10 | role: "user", |
| #11 | content: |
| #12 | "Provide a description of the image and do not include any additional text.", |
| #13 | }, |
| #14 | { |
| #15 | role: "user", |
| #16 | content: { type: "image_url", image_url: { url: image_url } }, |
| #17 | }, |
| #18 | ]); |
| #19 | return response; |
| #20 | }; |
| #21 | |
| #22 | const parse_vision_messages = async (messages: Message[]) => { |
| #23 | const parsed_messages = []; |
| #24 | for (const message of messages) { |
| #25 | let new_message = { |
| #26 | role: message.role, |
| #27 | content: "", |
| #28 | }; |
| #29 | if (message.role !== "system") { |
| #30 | if ( |
| #31 | typeof message.content === "object" && |
| #32 | message.content.type === "image_url" |
| #33 | ) { |
| #34 | const description = await get_image_description( |
| #35 | message.content.image_url.url, |
| #36 | ); |
| #37 | new_message.content = |
| #38 | typeof description === "string" |
| #39 | ? description |
| #40 | : JSON.stringify(description); |
| #41 | parsed_messages.push(new_message); |
| #42 | } else parsed_messages.push(message); |
| #43 | } |
| #44 | } |
| #45 | return parsed_messages; |
| #46 | }; |
| #47 | |
| #48 | export { parse_vision_messages }; |
| #49 |