{"id":13633383,"url":"https://github.com/intelligentnode/Intelli","last_synced_at":"2025-04-18T10:34:39.477Z","repository":{"id":221080506,"uuid":"751074012","full_name":"intelligentnode/Intelli","owner":"intelligentnode","description":"Create chatbot and AI agent workflows with unified access.","archived":false,"fork":false,"pushed_at":"2024-08-25T21:09:44.000Z","size":1411,"stargazers_count":38,"open_issues_count":19,"forks_count":5,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-10-30T01:51:41.501Z","etag":null,"topics":["autogpt","automation","chatbot","chatgpt","claude","diffusion","gemini","llama","llm","mistral"],"latest_commit_sha":null,"homepage":"https://docs.intellinode.ai","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/intelligentnode.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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-01-31T21:54:54.000Z","updated_at":"2024-10-23T01:26:41.000Z","dependencies_parsed_at":"2024-02-18T10:29:19.684Z","dependency_job_id":"ab6d69a4-1650-4099-8c73-f42338f6120f","html_url":"https://github.com/intelligentnode/Intelli","commit_stats":null,"previous_names":["intelligentnode/intellipy","intelligentnode/intelli"],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intelligentnode%2FIntelli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intelligentnode%2FIntelli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intelligentnode%2FIntelli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/intelligentnode%2FIntelli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/intelligentnode","download_url":"https://codeload.github.com/intelligentnode/Intelli/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223233084,"owners_count":17110587,"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":["autogpt","automation","chatbot","chatgpt","claude","diffusion","gemini","llama","llm","mistral"],"created_at":"2024-08-01T23:00:36.100Z","updated_at":"2025-04-18T10:34:39.467Z","avatar_url":"https://github.com/intelligentnode.png","language":"Python","funding_links":[],"categories":["AutoML","📚 Projects (2474 total)"],"sub_categories":["Profiling","MCP Servers"],"readme":"\u003cp align=\"center\"\u003e\n\u003cimg src=\"assets/flow_logo-round.png\" width=\"180em\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n\n\u003ca href=\"https://pypi.org/project/intelli/\" alt=\"PyPI version\"\u003e\n    \u003cimg src=\"https://img.shields.io/pypi/v/intelli?style=flat-square\u0026color=007ec6\" /\u003e\n\u003c/a\u003e\n\n\u003ca href=\"https://discord.gg/VYgCh2p3Ww\" alt=\"Join our Discord community\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Discord-join%20us-5865F2?style=flat-square\u0026logo=discord\u0026logoColor=white\" /\u003e\n\u003c/a\u003e\n\n\u003c/p\u003e\n\n# Intelli\nA framework for creating chatbots and AI agent workflows. It enables seamless integration with multiple AI models, including OpenAI, LLaMA, deepseek, Stable Diffusion, and Mistral, through a unified access layer.\n\n# Install\n```bash\npip install intelli\n```\n\nFor detailed usage instructions, refer to the [documentation](https://doc.intellinode.ai/docs/python).\n\n# Code Examples\n\n## Create Chatbot\nSwitch between multiple chatbot providers without changing your code.\n\n```python\nfrom intelli.function.chatbot import Chatbot, ChatProvider\nfrom intelli.model.input.chatbot_input import ChatModelInput\n\ndef call_chatbot(provider, model=None, api_key=None, options=None):\n    # prepare common input \n    input = ChatModelInput(\"You are a helpful assistant.\", model)\n    input.add_user_message(\"What is the capital of France?\")\n\n    # creating chatbot instance\n    chatbot = Chatbot(api_key, provider, options=options)\n    response = chatbot.chat(input)\n\n    return response\n\n# call chatGPT\ncall_chatbot(ChatProvider.OPENAI, \"gpt-4\")\n\n# call claude3\ncall_chatbot(ChatProvider.ANTHROPIC, \"claude-3-7-sonnet-20250219\")\n\n# call google gemini\ncall_chatbot(ChatProvider.GEMINI)\n\n# Call NVIDIA Deepseek\ncall_chatbot(ChatProvider.NVIDIA, \"deepseek-ai/deepseek-r1\")\n\n# Call vLLM (self-hosted)\ncall_chatbot(ChatProvider.VLLM, \"meta-llama/Llama-3.1-8B-Instruct\", options={\"baseUrl\": \"http://localhost:8000\"})\n```\n\n## Create AI Flows\nYou can create a flow of tasks executed by different AI models. Here's an example of creating a blog post flow:\n\n\u003cimg src=\"assets/flow_example.jpg\" width=\"680em\"\u003e\n\n\n```python\nfrom intelli.flow import Agent, Task, SequenceFlow, TextTaskInput, TextProcessor\n\n\n# define agents\nblog_agent = Agent(agent_type='text', provider='openai', mission='write blog posts', model_params={'key': YOUR_OPENAI_API_KEY, 'model': 'gpt-4'})\ncopy_agent = Agent(agent_type='text', provider='gemini', mission='generate description', model_params={'key': YOUR_GEMINI_API_KEY, 'model': 'gemini'})\nartist_agent = Agent(agent_type='image', provider='stability', mission='generate image', model_params={'key': YOUR_STABILITY_API_KEY})\n\n# define tasks\ntask1 = Task(TextTaskInput('blog post about electric cars'), blog_agent, log=True)\ntask2 = Task(TextTaskInput('Generate short image description for image model'), copy_agent, pre_process=TextProcessor.text_head, log=True)\ntask3 = Task(TextTaskInput('Generate cartoon style image'), artist_agent, log=True)\n\n# start sequence flow\nflow = SequenceFlow([task1, task2, task3], log=True)\nfinal_result = flow.start()\n```\n\n## Graph-Based AI Flows\n\n\u003cimg src=\"assets/flow_graph_example.jpg\" width=\"600em\"\u003e\n\nTo build async flows with multiple paths, refer to the [flow tutorial](https://doc.intellinode.ai/docs/python/flows/async-flow).\n\n\n## Connect Your Docs With Chatbot \nIntelliPy allows you to chat with your docs using multiple LLMs. To connect your data, visit the [IntelliNode App](https://app.intellinode.ai/), start a project using the Document option, upload your documents or images, and copy the generated One Key. This key will be used to connect the chatbot to your uploaded data.\n\n```python\n# creating chatbot with the intellinode one key\nbot = Chatbot(YOUR_OPENAI_API_KEY, \"openai\", {\"one_key\": YOUR_ONE_KEY})\n\ninput = ChatModelInput(\"You are a helpful assistant.\", \"gpt-3.5-turbo\")\ninput.add_user_message(\"What is the procedure for requesting a refund according to the user manual?\")\n# optional to returne the searched file name\ninput.attach_reference = True\n\nresponse = bot.chat(input)\n```\n\n## Generate Images\nUse the image controller to generate arts from multiple models with minimum code change:\n```python\nfrom intelli.controller.remote_image_model import RemoteImageModel\nfrom intelli.model.input.image_input import ImageModelInput\n\n# model details - change only two words to switch\nprovider = \"openai\"\nmodel_name = \"dall-e-3\"\n\n# prepare the input details\nprompts = \"cartoonishly-styled solitary snake logo, looping elegantly to form both the body of the python and an abstract play on data nodes.\"\nimage_input = ImageModelInput(prompt=prompt, width=1024, height=1024, model=model_name)\n\n# call the model openai/stability\nwrapper = RemoteImageModel(your_api_key, provider)\nresults = wrapper.generate_images(image_input)\n```\n\n## Keras Agent\nLoad gemma or mistral models offline using keras agent, [check the docs](https://docs.intellinode.ai/docs/python/flows/kagent).\n\n## GGUF Models\nLlama CPP provides an efficient way to run language models locally with support for models in the new **GGUF** format,  [check the docs](https://docs.intellinode.ai/docs/python/offline-chatbot/llamacpp).  \n\n# Repository Setup\n1. Install the requirements.\n```shell\npip install -r requirements.txt\n```\n\n2. Rename `.example.env` to `.env` and fill the keys.\n\n3. Run the test cases, examples below.\n```shell\n# images\npython3 -m unittest intelli.test.integration.test_remote_image_model\n\n# chatbot\npython3 -m unittest intelli.test.integration.test_chatbot\n\n# mistral\npython3 -m unittest intelli.test.integration.test_mistralai_wrapper\n\n# ai flows\npython3 -m unittest intelli.test.integration.test_flow_sequence\n```\n\n# Pillars\n- **The wrapper layer** provides low-level access to the latest AI models.\n- **The controller layer** offers a unified input to any AI model by handling the differences.\n- **The function layer** provides abstract functionality that extends based on the app's use cases. \n- **Flows**: create a flow of ai agents working toward user tasks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintelligentnode%2FIntelli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fintelligentnode%2FIntelli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fintelligentnode%2FIntelli/lists"}