Skip to main content
Glama

Storyden

by Southclaws
Mozilla Public License 2.0
229
semdexer.go1.86 kB
package semdexer import ( "context" "github.com/weaviate/weaviate-go-client/v5/weaviate" "go.uber.org/fx" "github.com/Southclaws/fault" "github.com/Southclaws/storyden/app/resources/datagraph/hydrate" "github.com/Southclaws/storyden/app/services/semdex" "github.com/Southclaws/storyden/app/services/semdex/asker" "github.com/Southclaws/storyden/app/services/semdex/semdexer/chromem_semdexer" "github.com/Southclaws/storyden/app/services/semdex/semdexer/pinecone_semdexer" "github.com/Southclaws/storyden/app/services/semdex/semdexer/weaviate_semdexer" "github.com/Southclaws/storyden/internal/config" "github.com/Southclaws/storyden/internal/infrastructure/ai" "github.com/Southclaws/storyden/internal/infrastructure/vector/pinecone" weaviate_infra "github.com/Southclaws/storyden/internal/infrastructure/weaviate" ) func newSemdexer( ctx context.Context, cfg config.Config, wc *weaviate.Client, pc *pinecone.Client, weaviateClassName weaviate_infra.WeaviateClassName, hydrator *hydrate.Hydrator, prompter ai.Prompter, ) (semdex.Semdexer, error) { if cfg.SemdexProvider != "" && cfg.LanguageModelProvider == "" { return nil, fault.New("semdex requires a language model provider to be enabled") } switch cfg.SemdexProvider { case "chromem": return chromem_semdexer.New(cfg, hydrator, prompter) case "weaviate": return weaviate_semdexer.New(wc, weaviateClassName, hydrator), nil case "pinecone": return pinecone_semdexer.New(ctx, cfg, pc, hydrator, prompter) default: return &semdex.Disabled{}, nil } } func Build() fx.Option { return fx.Options( fx.Provide( asker.New, ), fx.Provide( fx.Annotate( newSemdexer, fx.As(new(semdex.Semdexer)), fx.As(new(semdex.Querier)), fx.As(new(semdex.Mutator)), fx.As(new(semdex.Recommender)), fx.As(new(semdex.Searcher)), ), ), ) }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Southclaws/storyden'

If you have feedback or need assistance with the MCP directory API, please join our Discord server