{"id":13299643,"url":"https://github.com/darcyai/darcyai","last_synced_at":"2025-07-04T01:04:58.547Z","repository":{"id":62209131,"uuid":"459371891","full_name":"darcyai/darcyai","owner":"darcyai","description":"Darcy AI Engine is a Python library for building AI apps","archived":false,"fork":false,"pushed_at":"2023-09-05T23:01:12.000Z","size":55921,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-05-26T03:20:01.332Z","etag":null,"topics":["ai","ai-pipeline","computer-vision","edge","edge-computing","edgeai","iot","open-source","opencv","python","raspberry-pi"],"latest_commit_sha":null,"homepage":"https://docs.darcy.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/darcyai.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}},"created_at":"2022-02-15T00:25:51.000Z","updated_at":"2023-12-10T17:12:15.000Z","dependencies_parsed_at":"2023-02-10T12:01:33.621Z","dependency_job_id":null,"html_url":"https://github.com/darcyai/darcyai","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/darcyai/darcyai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darcyai%2Fdarcyai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darcyai%2Fdarcyai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darcyai%2Fdarcyai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darcyai%2Fdarcyai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/darcyai","download_url":"https://codeload.github.com/darcyai/darcyai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/darcyai%2Fdarcyai/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262090385,"owners_count":23257133,"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":["ai","ai-pipeline","computer-vision","edge","edge-computing","edgeai","iot","open-source","opencv","python","raspberry-pi"],"created_at":"2024-07-29T17:37:46.543Z","updated_at":"2025-07-04T01:04:58.511Z","avatar_url":"https://github.com/darcyai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Darcy AI Engine\n\n![AI Engine Pipeline](https://github.com/darcyai/darcyai/raw/main/.assets/pipeline-example-visual%402x-100.jpg)\n\nDarcy AI Engine is a Python library that makes building AI apps as easy as building any other type\nof app. AI Engine exposes high-level constructs ([`InputStream`](https://darcyai.github.io/darcyai/input-streams/inputstream/),\n[`Perceptor`](https://darcyai.github.io/darcyai/perceptors/perceptor/), `Callback`,\n[`OutputStream`](https://darcyai.github.io/darcyai/output-streams/outputstream/))\nthat you assemble in a `Pipeline` with a few lines of Python.\n\nTo get started, see the [Build Guide](https://docs.darcy.ai/docs/guides/build/), look\nat the [examples](https://github.com/darcyai/darcyai/tree/main/src/examples), and consult\nthe [Python reference docs](https://darcyai.github.io/darcyai/).\n\n## Example\n\nThis code (from [basic.py](https://github.com/darcyai/darcyai/tree/main/src/examples/basic_pipeline/basic.py)) shows how easy it\nis to create a minimal AI Engine pipeline:\n\n```python\n#Add the DarcyAI components that we need, particularly the InputStream, OutputStream, Pipeline, and PerceptorMock\nfrom darcyai.tests.perceptor_mock import PerceptorMock\nfrom darcyai.pipeline import Pipeline\nfrom sample_input_stream import SampleInputStream\nfrom sample_output_stream import SampleOutputStream\n\n#Define a class to hold all of our operations\nclass SingleStreamDemo():\n    def __init__(self):\n        #Create an input stream and an output stream that we can use in our demo\n        ping = SampleInputStream()\n        output_stream = SampleOutputStream()\n\n        #Give our class a pipeline property and instantiate it with a Darcy AI pipeline\n        self.__pipeline = Pipeline(input_stream=ping,\n                                   input_stream_error_handler_callback=self.__input_stream_error_handler_callback,\n                                   universal_rest_api=True,\n                                   rest_api_base_path=\"/pipeline\",\n                                   rest_api_port=8080)\n\n        #Add our output stream to the pipeline\n        self.__pipeline.add_output_stream(\"output\", self.__output_stream_callback, output_stream)\n\n        #Create a mock perceptor and add it to the pipeline\n        p1 = PerceptorMock()\n        self.__pipeline.add_perceptor(\"p1\", p1, accelerator_idx=0, input_callback=self.__perceptor_input_callback)\n\n    #Define a \"run\" method that just calls \"run\" on the pipeline\n    def run(self):\n        self.__pipeline.run()\n\n    #Define an input callback for the mock perceptor that just sends the data onward with no manipulation\n    def __perceptor_input_callback(self, input_data, pom, config):\n        return input_data\n\n    #Define an output stream callback that does not manipulate the data\n    def __output_stream_callback(self, pom, input_data):\n        pass\n\n    #Define an input stream error handler callback that just continues onward\n    def __input_stream_error_handler_callback(self, exception):\n        pass\n\n#In the main thread, start the application by instantiating our demo class and calling \"run\"\nif __name__ == \"__main__\":\n    single_stream = SingleStreamDemo()\n    single_stream.run()\n```\n\n\n\n## Issues, Contributing, Discussion\n\nIf you discover issues with AI Engine, view the [issues](https://github.com/darcyai/darcyai/issues),\nor create a new one. You can also submit a [Pull Request](https://github.com/darcyai/darcyai/pulls),\nor join the [discussions](https://github.com/darcyai/darcyai/discussions). \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarcyai%2Fdarcyai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarcyai%2Fdarcyai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarcyai%2Fdarcyai/lists"}