Skip to content

[OMEGA-400] import-kb | add ASI Cloud embeddings support - #344

Merged
paul-v-snet merged 14 commits into
mainfrom
asi_cloud_as_embedding_provider_support
Sep 22, 2026
Merged

paul-v-snet merged 14 commits into
mainfrom
asi_cloud_as_embedding_provider_support

Conversation

@paul-v-snet

Copy link
Copy Markdown
Collaborator

Description

  • Added ASI Cloud support as an embedding provider (both for the initial knowledge import and the src/rag.py module)*
  • Updated all relevant documentation in docs/
  • Updated autotests
  • Added a new config value - embeddingModel
  • Updated the import-kb dependency to 0.2.4**

*This PR supersedes #333
**0.2.4 has not been published yet. This PR must be merged only after import-kb version 0.2.4 is published.

How Has This Been Tested?

Tested with the updated import-kb version 0.2.4. Knowledge imports were successfully completed using all three supported embedding providers: Local, OpenAI, and ASI Cloud. The same providers were successfully tested with the src/rag.py module.

Checklist

  • PR contains autogenerated code
  • Self-review completed
  • Test scenarios above are passed with the version of the code from PR

@paul-v-snet

Copy link
Copy Markdown
Collaborator Author

The tests are failing because the new import-kb version has not been published yet - this is expected and does not block the review.

@alyona-snet
alyona-snet requested review from sassless and removed request for alyona-snet September 8, 2026 15:10
Comment thread src/loop.metta Outdated
sassless
sassless previously approved these changes Sep 15, 2026
- Empty embeddingModel now means the provider default: text-embedding-3-large for OpenAI, WhereIsAI/UAE-Large-V1 for ASICloud
- config.yaml ships an empty embeddingModel, so ASICloud no longer asks for a model it does not serve
- Log the provider, model and error text when an embedding request fails
- Pass the runtime provider, model and dimension to the import-kb memory store for non-Local providers
- Re-embed archive records through the same import-kb client that embeds the knowledge base
- Allow /memory-export with ASICloud embeddings
- Expect --provider openai in the OpenAI import test and add ASICloud cases
- List ASICloud and ASI_API_KEY in README and the memory tutorial
…ments

- Pass the container arguments to init_config in the entrypoint memory portability step
- Resolve the memory store provider and model from the configuration only, the same way the runtime does
- Keep memory export tests independent of EMBEDDING_PROVIDER in the environment and of test order
- Move the ASICloud cases after the existing unit tests and list them in the README
- Register Autotests/import_knowledge/test_import_knowledge.py in run_mandatory: it needs only bash and the stub on PATH, and it is the test that catches changes to scripts/import_knowledge.sh
@TossSky

TossSky commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Tested: 9870791, embeddings on ASICloud, OpenAI and Local, container started with docker run.

Works:

  • With embeddingModel=WhereIsAI/UAE-Large-V1 memory goes through ASI Cloud: the stored vector matches ASI Cloud's embedding of the same text, and query returns the stored fact
  • Knowledge-base import on start with ASICloud: 27882 records in 56 requests, no rate-limit errors, and query returns knowledge-base text
  • A missing or rejected ASI_API_KEY stops the container at start with a clear error. No sentinel is written, so the next start tries again
  • OpenAI and Local embeddings still work, and run_mandatory passes

Doesn't work:

  • embeddingprovider=ASICloud without embeddingModel breaks memory. The default is text-embedding-3-large (config.yaml#L42, reference-configuration.md#L37), and ASI Cloud answers 400 Model not found: for embeddings it serves only WhereIsAI/UAE-Large-V1 and BAAI/bge-base-en-v1.5. Every remember and query fails, while the knowledge-base import with the same settings succeeds, because import-kb falls back to UAE on its own. The agent gets RuntimeError (<py_RuntimeError>(0x…)), and nothing in the log says why (rag.py#L150-L153)
  • A memory archive imported on start under ASICloud gets re-embedded with the local e5 model (storage.py#L183-L190, called from entrypoint.sh#L76-L82). The import sends nothing to ASI Cloud, and queries use UAE vectors, so once the knowledge base is loaded the imported fact is not in the top 20 results even for its own text
  • /memory-export under ASICloud answers Memory export failed: Unsupported embedding provider: 'ASICloud' (memory_export.py#L52-L54)
  • Autotests/import_knowledge/test_import_knowledge.py fails after this change: 15 passed before it, 14 passed and 1 failed now. Line 65 expects import-knowledge with no arguments for OpenAI, and the script now passes --provider openai. The file is in neither run_mandatory nor run_optional, so CI never runs it
  • README still says EMBEDDING_PROVIDER is OpenAI or Local

scripts/omega sets embeddingprovider=Local for -p ASICloud, so ASICloud embeddings can only be enabled with docker run. That is what the review of #333 asked for, so I am not reporting it as a defect.

I opened #352 with fixes for all of the above. It targets this PR's branch, and the import-kb script tests are registered in run_mandatory there, so CI runs them from now on. Please review it and merge it into this branch if it looks fine.

Verdict: FAIL. PASS once #352 is merged.
@paul-v-snet @vsbogd @sassless

TossSky and others added 2 commits September 16, 2026 20:35
…d-memory-import

[OMEGA-400] Default to the provider's embedding model and embed imported memories with it
@paul-v-snet

paul-v-snet commented Sep 17, 2026

Copy link
Copy Markdown
Collaborator Author

@TossSky,
I approved your suggested changes and merged them into this branch, thank you.

@paul-v-snet
paul-v-snet merged commit 6657798 into main Sep 22, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants