{"id":16561343,"url":"https://github.com/jookie/phototrack","last_synced_at":"2026-05-07T20:34:25.474Z","repository":{"id":227905378,"uuid":"772615601","full_name":"jookie/PhotoTrack","owner":"jookie","description":"Streaming ChatGPT via the OpenAI Node to generates text information from your Image.","archived":false,"fork":false,"pushed_at":"2024-03-16T13:00:13.000Z","size":227,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-15T14:40:59.256Z","etag":null,"topics":["convex-data","gemini-api","google-gemini","jupiter-notebook","nvidia-merlin","openai-api","reactjs","replicate","rest-api"],"latest_commit_sha":null,"homepage":"https://photo-track.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jookie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-15T14:44:59.000Z","updated_at":"2024-03-15T18:43:02.000Z","dependencies_parsed_at":"2025-01-15T14:33:43.217Z","dependency_job_id":"f0f266d6-1579-4746-a1e0-2a3d2dcd680f","html_url":"https://github.com/jookie/PhotoTrack","commit_stats":null,"previous_names":["jookie/phototrack"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jookie%2FPhotoTrack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jookie%2FPhotoTrack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jookie%2FPhotoTrack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jookie%2FPhotoTrack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jookie","download_url":"https://codeload.github.com/jookie/PhotoTrack/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241965558,"owners_count":20050290,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["convex-data","gemini-api","google-gemini","jupiter-notebook","nvidia-merlin","openai-api","reactjs","replicate","rest-api"],"created_at":"2024-10-11T20:32:42.176Z","updated_at":"2025-12-01T21:12:35.316Z","avatar_url":"https://github.com/jookie.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ChatGPT Convex demo\n\nThis example app demonstrates how to use the\n[OpenAI ChatGPT API](https://platform.openai.com/docs/guides/chat) with\n[Convex](https://convex.dev) to implement a chat. Convex stores the messages and\nruns server-side functions to interact with OpenAI.\n\n![Example](./example.png)\n\nFeatures:\n- You can chat and get responses from the Chat GPT api.\n- You can start new threads to reset your conversation with Chat GPT.\n- You can specify what the chat identity is, and change it mid-thread.\n- You can make new identities.\n- Inputs are checked for offensive input using the moderation api.\n\nThis uses [Convex actions](https://docs.convex.dev/using/actions) to make\nrequests to OpenAI's API.\n\n## Running the App\n\nRun:\n\n```\nnpm install\nnpm run dev\n```\n\nThis will create and configure a Convex project if you don't already have one.\n\n### OpenAI API Setup\n\nCreate a free account on openai.com and create your\n[OpenAI API secret key](https://platform.openai.com/account/api-keys), and set it as\nan [environment variable](https://docs.convex.dev/using/environment-variables)\nwith the name `OPENAI_API_KEY` via the\n[Convex dashboard](https://dashboard.convex.dev/).\n\nThen visit [localhost:3000](http://localhost:3000).\n\n## Identities\n\nYou can add identities to talk to. I added:\n\n**Rubber Duck**\n\u003e You are curious and respond with helpful one-sentence questions.\n\n**Supportive Friend**\n\u003e You are a supportive and curious best friend who validates feelings and experiences and will give advice only when asked for it. You give short responses and ask questions to learn more.\n\n**CS Coach**\n\u003e You are a highly technically trained coach with expertise in technology and best practices for developing software. Respond with concise, precise messages and ask clarifying questions when things are unclear.\n\n# What is Convex?\n\n[Convex](https://convex.dev) is a hosted backend platform with a\nbuilt-in database that lets you write your\n[database schema](https://docs.convex.dev/database/schemas) and\n[server functions](https://docs.convex.dev/functions) in\n[TypeScript](https://docs.convex.dev/typescript). Server-side database\n[queries](https://docs.convex.dev/functions/query-functions) automatically\n[cache](https://docs.convex.dev/functions/query-functions#caching--reactivity) and\n[subscribe](https://docs.convex.dev/client/react#reactivity) to data, powering a\n[realtime `useQuery` hook](https://docs.convex.dev/client/react#fetching-data) in our\n[React client](https://docs.convex.dev/client/react). There are also\n[Python](https://docs.convex.dev/client/python),\n[Rust](https://docs.convex.dev/client/rust),\n[ReactNative](https://docs.convex.dev/client/react-native), and\n[Node](https://docs.convex.dev/client/javascript) clients, as well as a straightforward\n[HTTP API](https://github.com/get-convex/convex-js/blob/main/src/browser/http_client.ts#L40).\n\nThe database support\n[NoSQL-style documents](https://docs.convex.dev/database/document-storage) with\n[relationships](https://docs.convex.dev/database/document-ids) and\n[custom indexes](https://docs.convex.dev/database/indexes/)\n(including on fields in nested objects).\n\nThe\n[`query`](https://docs.convex.dev/functions/query-functions) and\n[`mutation`](https://docs.convex.dev/functions/mutation-functions) server functions have transactional,\nlow latency access to the database and leverage our\n[`v8` runtime](https://docs.convex.dev/functions/runtimes) with\n[determinism guardrails](https://docs.convex.dev/functions/runtimes#using-randomness-and-time-in-queries-and-mutations)\nto provide the strongest ACID guarantees on the market:\nimmediate consistency,\nserializable isolation, and\nautomatic conflict resolution via\n[optimistic multi-version concurrency control](https://docs.convex.dev/database/advanced/occ) (OCC / MVCC).\n\nThe [`action` server functions](https://docs.convex.dev/functions/actions) have\naccess to external APIs and enable other side-effects and non-determinism in\neither our\n[optimized `v8` runtime](https://docs.convex.dev/functions/runtimes) or a more\n[flexible `node` runtime](https://docs.convex.dev/functions/runtimes#nodejs-runtime).\n\nFunctions can run in the background via\n[scheduling](https://docs.convex.dev/scheduling/scheduled-functions) and\n[cron jobs](https://docs.convex.dev/scheduling/cron-jobs).\n\nDevelopment is cloud-first, with\n[hot reloads for server function](https://docs.convex.dev/cli#run-the-convex-dev-server) editing via the\n[CLI](https://docs.convex.dev/cli). There is a\n[dashbord UI](https://docs.convex.dev/dashboard) to\n[browse and edit data](https://docs.convex.dev/dashboard/deployments/data),\n[edit environment variables](https://docs.convex.dev/production/environment-variables),\n[view logs](https://docs.convex.dev/dashboard/deployments/logs),\n[run server functions](https://docs.convex.dev/dashboard/deployments/functions), and more.\n\nThere are built-in features for\n[reactive pagination](https://docs.convex.dev/database/pagination),\n[file storage](https://docs.convex.dev/file-storage),\n[reactive search](https://docs.convex.dev/text-search),\n[https endpoints](https://docs.convex.dev/functions/http-actions) (for webhooks),\n[streaming import/export](https://docs.convex.dev/database/import-export/), and\n[runtime data validation](https://docs.convex.dev/database/schemas#validators) for\n[function arguments](https://docs.convex.dev/functions/args-validation) and\n[database data](https://docs.convex.dev/database/schemas#schema-validation).\n\nEverything scales automatically, and it’s [free to start](https://www.convex.dev/plans).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjookie%2Fphototrack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjookie%2Fphototrack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjookie%2Fphototrack/lists"}