{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":759825266,"defaultBranch":"main","name":"openai-gemini","ownerLogin":"PublicAffairs","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2024-02-19T12:07:50.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/160492612?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712789859.0","currentOid":""},"activityList":{"items":[{"before":"26d09dcafcf1a4486cde0d57d8959b0ff9df89fa","after":"ce3b012265e75482436ccefdf01f3bda28ca292b","ref":"refs/heads/main","pushedAt":"2024-04-11T19:23:53.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Remove unneeded code\n\n`gemini-1.5-pro-latest` successfully accept multiple user messages,\nso it's now no need to insert dummy model messages between them","shortMessageHtmlLink":"Remove unneeded code"}},{"before":"745a00713f5b3f53bd1297e0be3ff9ccaec46ff6","after":"26d09dcafcf1a4486cde0d57d8959b0ff9df89fa","ref":"refs/heads/main","pushedAt":"2024-04-11T17:09:31.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Fix `created` timestamps (ms -> s)","shortMessageHtmlLink":"Fix created timestamps (ms -> s)"}},{"before":"095816070b751fc314ff77003f64625b52d1b355","after":"ac655aeb81a4fd7fb647131d71cfdb5977b057a1","ref":"refs/heads/resize-images","pushedAt":"2024-04-11T17:08:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Resize images with https://wsrv.nl/","shortMessageHtmlLink":"Resize images with https://wsrv.nl/"}},{"before":"5bd8f57e5e01aea3d19bfae773876e33d7d3077e","after":"095816070b751fc314ff77003f64625b52d1b355","ref":"refs/heads/resize-images","pushedAt":"2024-04-10T23:01:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Resize images with https://wsrv.nl/","shortMessageHtmlLink":"Resize images with https://wsrv.nl/"}},{"before":"d16cfafa897364151dc4a4eac6d901e9b8c97e45","after":"745a00713f5b3f53bd1297e0be3ff9ccaec46ff6","ref":"refs/heads/main","pushedAt":"2024-04-10T21:58:21.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Support `response_format`\n\nhttps://platform.openai.com/docs/api-reference/chat/create#chat-create-response_format\nhttps://ai.google.dev/docs/gemini_api_overview#json","shortMessageHtmlLink":"Support response_format"}},{"before":"b0f7f0526105040eb3d97567f3bbb8f54ce3529c","after":"d16cfafa897364151dc4a4eac6d901e9b8c97e45","ref":"refs/heads/main","pushedAt":"2024-03-03T21:44:48.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"netlify.toml: set publish dir\n\nhttps://docs.netlify.com/configure-builds/file-based-configuration/#build-settings\nOtherwise the whole repo get into deployment","shortMessageHtmlLink":"netlify.toml: set publish dir"}},{"before":"87c8d0874bbb8683065e66c9f8e19a13cfe4d88a","after":"b0f7f0526105040eb3d97567f3bbb8f54ce3529c","ref":"refs/heads/main","pushedAt":"2024-03-02T00:01:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Improve readme\n\nClose #2","shortMessageHtmlLink":"Improve readme"}},{"before":"4d9bfc8cca27f00b999cc4f8b6708196644979fd","after":"87c8d0874bbb8683065e66c9f8e19a13cfe4d88a","ref":"refs/heads/main","pushedAt":"2024-02-27T23:45:03.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Fix link in readme\n\nIt's impossible to set wrangler config when deploying from Cloudflare\nworkers-playground, and without it importing \"node:buffer\" fails.\n\nFortunately, there is another branch in this repo, that does not depend\non node Buffer, so just use it in this case.\n\nClose #1","shortMessageHtmlLink":"Fix link in readme"}},{"before":"6d9241a27d53391d34cf5989410865c543bbc4a8","after":"4d9bfc8cca27f00b999cc4f8b6708196644979fd","ref":"refs/heads/main","pushedAt":"2024-02-27T23:43:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Fix link in readme\n\nIt's impossible to set wrangler config when deploying from Cloudflare\nworkers-playground, and without it importing \"node:buffer\" fails.\n\nFortunately, there is another branch in this repo, that does not depend\non node Buffer, so just use it in this case.\n\nClose #1","shortMessageHtmlLink":"Fix link in readme"}},{"before":"7187905cd04df4a86c4201fd9d7e5f4dc0b70360","after":"6d9241a27d53391d34cf5989410865c543bbc4a8","ref":"refs/heads/main","pushedAt":"2024-02-27T22:18:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"readme\n\nTodo:\n\nEmbeddings\n- https://platform.openai.com/docs/guides/embeddings\n- https://platform.openai.com/docs/api-reference/embeddings\n- https://ai.google.dev/tutorials/node_quickstart#embeddings\n\nFunctions\n- https://platform.openai.com/docs/guides/function-calling\n- https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/function-calling?tabs=python\n- https://ai.google.dev/docs/function_calling","shortMessageHtmlLink":"readme"}},{"before":"7187905cd04df4a86c4201fd9d7e5f4dc0b70360","after":null,"ref":"refs/heads/wip","pushedAt":"2024-02-26T21:48:31.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"}},{"before":"1e7df266012add00043f49a38e10e63b291fbf57","after":"7187905cd04df4a86c4201fd9d7e5f4dc0b70360","ref":"refs/heads/main","pushedAt":"2024-02-26T21:25:38.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"readme\n\nTodo:\n\nEmbeddings\n- https://platform.openai.com/docs/guides/embeddings\n- https://platform.openai.com/docs/api-reference/embeddings\n- https://ai.google.dev/tutorials/node_quickstart#embeddings\n\nFunctions\n- https://platform.openai.com/docs/guides/function-calling\n- https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/function-calling?tabs=python\n- https://ai.google.dev/docs/function_calling","shortMessageHtmlLink":"readme"}},{"before":"d13f97cda0ba7f9381cc48cf7c6c407eaf293b6a","after":"7187905cd04df4a86c4201fd9d7e5f4dc0b70360","ref":"refs/heads/wip","pushedAt":"2024-02-26T21:24:17.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"readme\n\nTodo:\n\nEmbeddings\n- https://platform.openai.com/docs/guides/embeddings\n- https://platform.openai.com/docs/api-reference/embeddings\n- https://ai.google.dev/tutorials/node_quickstart#embeddings\n\nFunctions\n- https://platform.openai.com/docs/guides/function-calling\n- https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/function-calling?tabs=python\n- https://ai.google.dev/docs/function_calling","shortMessageHtmlLink":"readme"}},{"before":"d1e1b71100876b440768696b0b3793ea6304b22d","after":"d13f97cda0ba7f9381cc48cf7c6c407eaf293b6a","ref":"refs/heads/wip","pushedAt":"2024-02-26T20:22:07.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"cf0c985c581658d014c667b970eec1d7d48aa083","after":"d1e1b71100876b440768696b0b3793ea6304b22d","ref":"refs/heads/wip","pushedAt":"2024-02-26T19:39:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"7d73f347c72386b0466fa6d3b6d4fadac84e079c","after":"cf0c985c581658d014c667b970eec1d7d48aa083","ref":"refs/heads/wip","pushedAt":"2024-02-26T18:58:12.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"01f1e3a5a38ce15b2f96c9f8af28a8954cc46215","after":"7d73f347c72386b0466fa6d3b6d4fadac84e079c","ref":"refs/heads/wip","pushedAt":"2024-02-26T18:53:33.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"8305531a9334b864a281ded748f881c8ba060298","after":"01f1e3a5a38ce15b2f96c9f8af28a8954cc46215","ref":"refs/heads/wip","pushedAt":"2024-02-26T18:45:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"010cfdb35c547c6e54b3b2d427d8e1575d393e16","after":"8305531a9334b864a281ded748f881c8ba060298","ref":"refs/heads/wip","pushedAt":"2024-02-26T15:45:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"854c5698a477253b7dff4fb3d6cff1d9b2df8d25","after":"1e7df266012add00043f49a38e10e63b291fbf57","ref":"refs/heads/main","pushedAt":"2024-02-26T15:37:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Rework transform stream end handling\n\nWhat was good enough at Cloudflare - did not work at Netlify.","shortMessageHtmlLink":"Rework transform stream end handling"}},{"before":null,"after":"010cfdb35c547c6e54b3b2d427d8e1575d393e16","ref":"refs/heads/wip","pushedAt":"2024-02-26T15:35:36.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":null,"after":"5bd8f57e5e01aea3d19bfae773876e33d7d3077e","ref":"refs/heads/resize-images","pushedAt":"2024-02-26T15:35:18.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Resize images with https://wsrv.nl/","shortMessageHtmlLink":"Resize images with https://wsrv.nl/"}},{"before":"831cdf0f3480a88263835c0f006ac8c0a1e3d579","after":"854c5698a477253b7dff4fb3d6cff1d9b2df8d25","ref":"refs/heads/main","pushedAt":"2024-02-26T12:58:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"72e4f0e231f302484d5c83c46a2b7d39177511ad","after":"831cdf0f3480a88263835c0f006ac8c0a1e3d579","ref":"refs/heads/main","pushedAt":"2024-02-21T01:44:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"922bc900e3807118fd2747892c03e9b4bad892f3","after":"72e4f0e231f302484d5c83c46a2b7d39177511ad","ref":"refs/heads/main","pushedAt":"2024-02-21T00:48:35.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"WIP","shortMessageHtmlLink":"WIP"}},{"before":"3ea44f23857ed3e02d5c3ac03dc030ab79b072fa","after":"922bc900e3807118fd2747892c03e9b4bad892f3","ref":"refs/heads/main","pushedAt":"2024-02-19T16:47:09.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Rework transform stream end handling\n\nWhat was good enough at Cloudflare - did not work at Netlify.","shortMessageHtmlLink":"Rework transform stream end handling"}},{"before":"f40e1b3a94396077a94ccc8a43072ccd98b54434","after":"3ea44f23857ed3e02d5c3ac03dc030ab79b072fa","ref":"refs/heads/main","pushedAt":"2024-02-19T16:39:17.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Use REST api directly\n\nDocs:\n- https://ai.google.dev/tutorials/rest_quickstart\n- https://ai.google.dev/api/rest/\n- https://ai.google.dev/api/rest/v1/GenerationConfig\n- https://ai.google.dev/api/rest/v1/models/generateContent","shortMessageHtmlLink":"Use REST api directly"}},{"before":"d4e1c3538a682bb29f09d67525546940a907438a","after":"f40e1b3a94396077a94ccc8a43072ccd98b54434","ref":"refs/heads/main","pushedAt":"2024-02-19T12:48:50.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Initial implementation - based on generative-ai-js\n\nTested as Cloudflare Worker - https://workers.cloudflare.com\n\nGemini docs:\n- https://ai.google.dev/tutorials/node_quickstart\n- https://github.com/google/generative-ai-js\n- https://github.com/google/generative-ai-js/blob/main/docs/reference/index.md\n\nOpenAI docs:\n- https://platform.openai.com/docs/guides/text-generation\n- https://platform.openai.com/docs/guides/vision\n- https://platform.openai.com/docs/api-reference/chat\n- https://platform.openai.com/docs/guides/error-codes/api-errors\n\nAdditional dependancy: https://wsrv.nl/\n\nInspired by:\n https://github.com/haibbo/cf-openai-azure-proxy/raw/main/cf-openai-azure-proxy.js\n https://github.com/zuisong/gemini-openai-proxy","shortMessageHtmlLink":"Initial implementation - based on generative-ai-js"}},{"before":"90faac95bfabfe79bdcd55b7a9d0470dbdf46dd8","after":"d4e1c3538a682bb29f09d67525546940a907438a","ref":"refs/heads/main","pushedAt":"2024-02-19T12:09:35.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}},{"before":null,"after":"90faac95bfabfe79bdcd55b7a9d0470dbdf46dd8","ref":"refs/heads/main","pushedAt":"2024-02-19T12:07:51.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"johnd0e","name":null,"path":"/johnd0e","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1838643?s=80&v=4"},"commit":{"message":"Initial commit","shortMessageHtmlLink":"Initial commit"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAELnAaawA","startCursor":null,"endCursor":null}},"title":"Activity ยท PublicAffairs/openai-gemini"}