diff --git a/README.md b/README.md index 67921af..29dfe36 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ -# evo.sage -![](./content/evo-sage-banner.png) +# fundpublicgoods.ai + +![](./content/fundpublicgoods.jpg) --- @@ -9,9 +10,7 @@ ## Welcome! -evo.sage is an agent that specializes in streamlining resource allocation. Try it now at [fundpublicgoods.ai](https://fundpublicgoods.ai) - -![](./content/fundpublicgoods-ss.jpg) +fundpublicgoods.ai is an AI agent that specializes in streamlining resource allocation. Try it now at [fundpublicgoods.ai](https://fundpublicgoods.ai) ## Need Help? @@ -19,11 +18,11 @@ Join our [Discord community](https://discord.gg/k7UCsH3ps9) for support and disc [![Join us on Discord](https://invidget.switchblade.xyz/k7UCsH3ps9)](https://discord.com/invite/k7UCsH3ps9) -If you have questions or encounter issues, please don't hesitate to [create a new issue](https://github.com/polywrap/evo.sage/issues/new) to get support. +If you have questions or encounter issues, please don't hesitate to [create a new issue](https://github.com/polywrap/fundpublicgoods/issues/new) to get support. ## How it works -evo.sage is designed to generate funding allocation strategies based on the user's preferences and publicly available data. In its first implementation, it focuses on how to best allocate funds to Public Good Projects (PGPs) that were apart of past [GitCoin](https://www.gitcoin.co/) rounds. +fundpublicgoods.ai is designed to generate funding allocation strategies based on the user's preferences and publicly available data. It focuses on how to best allocate funds to Public Good Projects (PGPs) that were apart of past [GitCoin](https://www.gitcoin.co/) rounds. Digging a bit deeper, here are the steps the agent takes when creating an allocation strategy: @@ -33,11 +32,11 @@ Digging a bit deeper, here are the steps the agent takes when creating an alloca 3. **Compute Evaluation Scores.** Analyze each report and assign a numerical evaluation score from 0-10 for each of the three criteria. Combine these scores through a weighted average to arrive at the project’s overall score. Weight the allocation percentages in proportion to scores of the projects with addresses on the selected chain. *Techniques used: [RAG](https://www.promptingguide.ai/techniques/rag), Numerical Evaluations, Algorithmic Composition* -![](./content/strategy-ss.png) +![](./content/strategy.png) The allocation strategy includes a report for each project summarizing the agent’s findings. -![](./content/report-ss.png) +![](./content/report.png) One critical aspect of the report is the impact section. The agent uses information from the project’s Gitcoin round applications to arrive at an intelligent estimate of the impact that a project has had. diff --git a/content/evo-sage-banner.png b/content/evo-sage-banner.png deleted file mode 100644 index b474575..0000000 Binary files a/content/evo-sage-banner.png and /dev/null differ diff --git a/content/fundpublicgoods-ss.jpg b/content/fundpublicgoods.jpg similarity index 100% rename from content/fundpublicgoods-ss.jpg rename to content/fundpublicgoods.jpg diff --git a/content/report-ss.png b/content/report.png similarity index 100% rename from content/report-ss.png rename to content/report.png diff --git a/content/strategy-ss.png b/content/strategy.png similarity index 100% rename from content/strategy-ss.png rename to content/strategy.png diff --git a/web/app/page.tsx b/web/app/page.tsx index c223470..0b3bcac 100644 --- a/web/app/page.tsx +++ b/web/app/page.tsx @@ -24,9 +24,5 @@ function generateUniqueIndexes(arrayLength: number, count: number): number[] { export default function HomePage() { const promptIdxs = generateUniqueIndexes(EXAMPLE_PROMPTS.length, 6); - return ( -
- -
- ); + return ; } diff --git a/web/components/Disclaimer.tsx b/web/components/Disclaimer.tsx index 6f5cce3..2b89920 100644 --- a/web/components/Disclaimer.tsx +++ b/web/components/Disclaimer.tsx @@ -10,7 +10,7 @@ const Disclaimer = () => {
setShowDisclaimer(false)} - className='absolute top-4 right-4 text-indigo-800 hover:text-indigo-500 cursor-pointer' + className='absolute top-3 right-3 text-indigo-800 hover:text-indigo-500 cursor-pointer' size={20} weight='bold' /> @@ -18,8 +18,12 @@ const Disclaimer = () => {
This AI agent is experimental.
-
- The agent is evaluating projects based on self-reported data through past Gitcoin applications and therefore cannot guarantee their accuracy at this time. The agent also cannot guarantee that each project is still in control of its address, so please double check before sending large amounts. +
+ The agent is evaluating projects based on self-reported data through + past Gitcoin applications and therefore cannot guarantee their + accuracy at this time. The agent also cannot guarantee that each + project is still in control of its address, so please double check + before sending large amounts.
diff --git a/web/components/IntroPopUp.tsx b/web/components/IntroPopUp.tsx new file mode 100644 index 0000000..6ca2737 --- /dev/null +++ b/web/components/IntroPopUp.tsx @@ -0,0 +1,42 @@ +"use client"; + +import { X } from "@phosphor-icons/react/dist/ssr"; +import { SparkleIcon } from "./Icons"; +import { Dispatch, SetStateAction } from "react"; + +interface IntroPopupProps { + setShowIntro: Dispatch>; +} + +const IntroPopUp = ({ setShowIntro }: IntroPopupProps) => { + const handleClose = () => { + setShowIntro(false); + localStorage.setItem("introClosed", "true"); + }; + + return ( +
+ +
+
+ +
+ Welcome to fundpublicgoods.ai! +
+
+
+ This is a proof-of-concept to showcase the potential of AI agents to + assist users with complex transactions. Give it a try and let us know + what you think! +
+
+
+ ); +}; + +export default IntroPopUp; diff --git a/web/components/Prompt.tsx b/web/components/Prompt.tsx index 61ea4f3..f8021a1 100644 --- a/web/components/Prompt.tsx +++ b/web/components/Prompt.tsx @@ -9,9 +9,11 @@ import { startRun } from "@/app/actions"; import clsx from "clsx"; import { EXAMPLE_PROMPTS } from "@/utils/examplePrompts"; import { toast } from "react-toastify"; +import IntroPopUp from "./IntroPopUp"; export default function Prompt({ promptIdxs }: { promptIdxs: number[] }) { const [prompt, setPrompt] = useState(""); + const [showIntro, setShowIntro] = useState(false); const [isWaiting, setIsWaiting] = useState(false); const { data: session } = useSession(); const searchParams = useSearchParams(); @@ -42,8 +44,19 @@ export default function Prompt({ promptIdxs }: { promptIdxs: number[] }) { } }, [searchParams, router]); + useEffect(() => { + const introClosed = localStorage.getItem("introClosed"); + if (!introClosed) { + setShowIntro(true); + } + }, []); + return ( - <> +
@@ -88,6 +101,7 @@ export default function Prompt({ promptIdxs }: { promptIdxs: number[] }) {
- + {showIntro && } +
); }