{"id":27992744,"url":"https://github.com/happydasch/llm_advisory","last_synced_at":"2026-04-14T03:32:41.936Z","repository":{"id":291809462,"uuid":"977189036","full_name":"happydasch/llm_advisory","owner":"happydasch","description":"Modular framework for building topic-specific advisors powered by large language models, using LangChain, LangGraph, and Pydantic.","archived":false,"fork":false,"pushed_at":"2025-06-25T10:04:14.000Z","size":19,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-14T21:34:16.210Z","etag":null,"topics":["advisory","ai-agent","ai-toolkit","backtrader","decision-support","framework","langchain","langgraph","llm","multi-agent","ollama","openai","pydantic","trading"],"latest_commit_sha":null,"homepage":"","language":"Python","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/happydasch.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,"zenodo":null}},"created_at":"2025-05-03T16:15:56.000Z","updated_at":"2025-06-25T10:04:57.000Z","dependencies_parsed_at":"2025-05-06T17:34:52.920Z","dependency_job_id":null,"html_url":"https://github.com/happydasch/llm_advisory","commit_stats":null,"previous_names":["happydasch/llm_advisory"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/happydasch/llm_advisory","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happydasch%2Fllm_advisory","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happydasch%2Fllm_advisory/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happydasch%2Fllm_advisory/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happydasch%2Fllm_advisory/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/happydasch","download_url":"https://codeload.github.com/happydasch/llm_advisory/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/happydasch%2Fllm_advisory/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["advisory","ai-agent","ai-toolkit","backtrader","decision-support","framework","langchain","langgraph","llm","multi-agent","ollama","openai","pydantic","trading"],"created_at":"2025-05-08T18:41:55.069Z","updated_at":"2026-04-14T03:32:41.920Z","avatar_url":"https://github.com/happydasch.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LLM Advisory\n\nThis framework allows to easily create multiple advisors using large language models. It uses a simple agent workflow which can be customized.\n\nLLM Advisory uses `langchain` and `langgraph` for model and workflow handling, `pydantic` for data models. It is easily extendable and new advisors can be created by extending the core advisor. Support for `OpenAI` and `Ollama` is available.\n\nThe advisory object is created by `llm_advisory = LLMAdvisory(advisors=[DefaultAdvisor()])` with at least on advisor.\n\nThe advisors are invoked with a custom input prompt (or a default prompt to return a advisory) by calling `llm_advisory.get_advisory(...)`\nwhich returns a pydantic model representing a signal containing the advisory.\n\n**what can this be used for?**\n\n`LLM Advisory` is a generic toolkit for topic based advisories. Each advisor takes the same raw data but focuses on its specialty.\n\nBy dividing the work, you:\n\n1. Avoid confusion — each advisor has a narrow, well-defined role.\n2. Get clearer signals — instead of one muddled answer, you get targeted, high-confidence advice from the “right” advisor.\n\nProjects using `LLM Advisory`:\n\n- [Backtrader LLM Advisory](https://github.com/happydasch/bt_llm_advisory) - A backtrader trading strategy advisory, which generates trade advices. Multiple advisors are available which generate data from a running strategy.\n\n## Quickstart\n\nSet up the LLMAdvisory with ChatGPT:\n\n```python\nfrom llm_advisory import LLMAdvisory\nfrom llm_advisory.advisors import DefaultAdvisor\nfrom llm_advisory.pydantic_models import LLMAdvisorDataArtefact\n\nllm_advisory = LLMAdvisory(\n    model_provider=\"openai\",\n    model_name=\"gpt-4o\",\n    model_config={\"OPENAI_API_KEY\": \"xxx\"},\n    advisors=[DefaultAdvisor()]\n)\n```\n\nAsk the advisory for a advice:\n\n```python\n\nadvisory_response = llm_advisory.get_advisory(\n    message=\"Is this a positive or negative message\",\n    data=[\n        LLMAdvisorDataArtefact(\n            description=\"Message\",\n            artefact=\"This is a positive message\",\n        )\n    ]\n)\n```\n\nProcessing the advice:\n\n```python\nprint(\n    advisory_response.advice.signal,\n    advisory_response.advice.confidence,\n    advisory_response.advice.reasoning,\n)\n```\n\n## Advisors\n\n- `DefaultAdvisor`: Default advisor with no speciality\n- `PersonaAdvisor`: Default advisor with additional personality specified\n\n## State Advisors\n\n- `AdvisoryAdvisor`: Advisor that creates the final advisory\n\n## Examples\n\nTODO add text how to create a basic advisory object\n\n- Provide a advice from advisors based on provided data (moral)\n- Create a advisor based on a famous trading Persona or a fictional Persona with a custom Persona description ()\n\n## Frequently Asked Questions\n\n- **My advisory is running slow when using ollama**\n  Set `max_concurrency` to a lower value when creating the adivsory.\n\n## Future functionality\n\nA list with possible future functions.\n\n- Flexible workflow\n- Fetch additional data from provided sources, per advisor\n- compile experience into memory for self improvement\n- add observer for advisors to overwatch their behaviour\n- add feedback for advices from trading so they can learn\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappydasch%2Fllm_advisory","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhappydasch%2Fllm_advisory","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhappydasch%2Fllm_advisory/lists"}